emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/calendar/diary-lib.el


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/calendar/diary-lib.el
Date: Mon, 22 Jul 2002 11:32:00 -0400

Index: emacs/lisp/calendar/diary-lib.el
diff -c emacs/lisp/calendar/diary-lib.el:1.54 
emacs/lisp/calendar/diary-lib.el:1.55
*** emacs/lisp/calendar/diary-lib.el:1.54       Mon Apr 22 03:51:28 2002
--- emacs/lisp/calendar/diary-lib.el    Mon Jul 22 11:32:00 2002
***************
*** 88,195 ****
  (autoload 'check-calendar-holidays "holidays"
    "Check the list of holidays for any that occur on DATE.
  The value returned is a list of strings of relevant holiday descriptions.
! The holidays are those in the list `calendar-holidays'."
!   t)
  
  (autoload 'calendar-holiday-list "holidays"
    "Form the list of holidays that occur on dates in the calendar window.
! The holidays are those in the list `calendar-holidays'."
!   t)
  
  (autoload 'diary-french-date "cal-french"
!   "French calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-mayan-date "cal-mayan"
!   "Mayan calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-iso-date "cal-iso"
!   "ISO calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-julian-date "cal-julian"
!   "Julian calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-astro-day-number "cal-julian"
!   "Astronomical (Julian) day number diary entry."
!   t)
  
  (autoload 'diary-chinese-date "cal-china"
!   "Chinese calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-islamic-date "cal-islam"
!   "Islamic calendar equivalent of date diary entry."
!   t)
  
  (autoload 'list-islamic-diary-entries "cal-islam"
!   "Add any Islamic date entries from the diary file to `diary-entries-list'."
!   t)
  
  (autoload 'mark-islamic-diary-entries "cal-islam"
!   "Mark days in the calendar window that have Islamic date diary entries."
!   t)
  
  (autoload 'mark-islamic-calendar-date-pattern "cal-islam"
!    "Mark dates in calendar window that conform to Islamic date 
MONTH/DAY/YEAR."
!   t)
  
  (autoload 'diary-hebrew-date "cal-hebrew"
!   "Hebrew calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-omer "cal-hebrew"
!   "Omer count diary entry."
!   t)
  
  (autoload 'diary-yahrzeit "cal-hebrew"
!   "Yahrzeit diary entry--entry applies if date is yahrzeit or the day before."
!   t)
  
  (autoload 'diary-parasha "cal-hebrew"
!   "Parasha diary entry--entry applies if date is a Saturday."
!   t)
  
  (autoload 'diary-rosh-hodesh "cal-hebrew"
!   "Rosh Hodesh diary entry."
!   t)
  
  (autoload 'list-hebrew-diary-entries "cal-hebrew"
!   "Add any Hebrew date entries from the diary file to `diary-entries-list'."
!   t)
  
  (autoload 'mark-hebrew-diary-entries "cal-hebrew"
!   "Mark days in the calendar window that have Hebrew date diary entries."
!   t)
  
  (autoload 'mark-hebrew-calendar-date-pattern "cal-hebrew"
!    "Mark dates in calendar window that conform to Hebrew date MONTH/DAY/YEAR."
!   t)
  
  (autoload 'diary-coptic-date "cal-coptic"
!   "Coptic calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-ethiopic-date "cal-coptic"
!   "Ethiopic calendar equivalent of date diary entry."
!   t)
  
  (autoload 'diary-persian-date "cal-persia"
!   "Persian calendar equivalent of date diary entry."
!   t)
  
! (autoload 'diary-phases-of-moon "lunar" "Moon phases diary entry." t)
  
  (autoload 'diary-sunrise-sunset "solar"
!   "Local time of sunrise and sunset as a diary entry."
!   t)
  
  (autoload 'diary-sabbath-candles "solar"
    "Local time of candle lighting diary entry--applies if date is a Friday.
! No diary entry if there is no sunset on that date."
!   t)
  
  (defvar diary-syntax-table (copy-syntax-table (standard-syntax-table))
    "The syntax table used when parsing dates in the diary file.
--- 88,170 ----
  (autoload 'check-calendar-holidays "holidays"
    "Check the list of holidays for any that occur on DATE.
  The value returned is a list of strings of relevant holiday descriptions.
! The holidays are those in the list `calendar-holidays'.")
  
  (autoload 'calendar-holiday-list "holidays"
    "Form the list of holidays that occur on dates in the calendar window.
! The holidays are those in the list `calendar-holidays'.")
  
  (autoload 'diary-french-date "cal-french"
!   "French calendar equivalent of date diary entry.")
  
  (autoload 'diary-mayan-date "cal-mayan"
!   "Mayan calendar equivalent of date diary entry.")
  
  (autoload 'diary-iso-date "cal-iso"
!   "ISO calendar equivalent of date diary entry.")
  
  (autoload 'diary-julian-date "cal-julian"
!   "Julian calendar equivalent of date diary entry.")
  
  (autoload 'diary-astro-day-number "cal-julian"
!   "Astronomical (Julian) day number diary entry.")
  
  (autoload 'diary-chinese-date "cal-china"
!   "Chinese calendar equivalent of date diary entry.")
  
  (autoload 'diary-islamic-date "cal-islam"
!   "Islamic calendar equivalent of date diary entry.")
  
  (autoload 'list-islamic-diary-entries "cal-islam"
!   "Add any Islamic date entries from the diary file to `diary-entries-list'.")
  
  (autoload 'mark-islamic-diary-entries "cal-islam"
!   "Mark days in the calendar window that have Islamic date diary entries.")
  
  (autoload 'mark-islamic-calendar-date-pattern "cal-islam"
!    "Mark dates in calendar window that conform to Islamic date 
MONTH/DAY/YEAR.")
  
  (autoload 'diary-hebrew-date "cal-hebrew"
!   "Hebrew calendar equivalent of date diary entry.")
  
  (autoload 'diary-omer "cal-hebrew"
!   "Omer count diary entry.")
  
  (autoload 'diary-yahrzeit "cal-hebrew"
!   "Yahrzeit diary entry--entry applies if date is yahrzeit or the day 
before.")
  
  (autoload 'diary-parasha "cal-hebrew"
!   "Parasha diary entry--entry applies if date is a Saturday.")
  
  (autoload 'diary-rosh-hodesh "cal-hebrew"
!   "Rosh Hodesh diary entry.")
  
  (autoload 'list-hebrew-diary-entries "cal-hebrew"
!   "Add any Hebrew date entries from the diary file to `diary-entries-list'.")
  
  (autoload 'mark-hebrew-diary-entries "cal-hebrew"
!   "Mark days in the calendar window that have Hebrew date diary entries.")
  
  (autoload 'mark-hebrew-calendar-date-pattern "cal-hebrew"
!    "Mark dates in calendar window that conform to Hebrew date 
MONTH/DAY/YEAR.")
  
  (autoload 'diary-coptic-date "cal-coptic"
!   "Coptic calendar equivalent of date diary entry.")
  
  (autoload 'diary-ethiopic-date "cal-coptic"
!   "Ethiopic calendar equivalent of date diary entry.")
  
  (autoload 'diary-persian-date "cal-persia"
!   "Persian calendar equivalent of date diary entry.")
  
! (autoload 'diary-phases-of-moon "lunar" "Moon phases diary entry.")
  
  (autoload 'diary-sunrise-sunset "solar"
!   "Local time of sunrise and sunset as a diary entry.")
  
  (autoload 'diary-sabbath-candles "solar"
    "Local time of candle lighting diary entry--applies if date is a Friday.
! No diary entry if there is no sunset on that date.")
  
  (defvar diary-syntax-table (copy-syntax-table (standard-syntax-table))
    "The syntax table used when parsing dates in the diary file.
***************
*** 808,814 ****
           (m)
           (y)
           (first-date)
!          (last-date))
      (save-excursion
        (set-buffer calendar-buffer)
        (setq m displayed-month)
--- 783,790 ----
           (m)
           (y)
           (first-date)
!          (last-date)
!          (mark))
      (save-excursion
        (set-buffer calendar-buffer)
        (setq m displayed-month)
***************
*** 856,865 ****
            (while (string-match "[\^M]" entry)
              (aset entry (match-beginning 0) ?\n )))
          (calendar-for-loop date from first-date to last-date do
!           (if (diary-sexp-entry sexp entry
!                                 (calendar-gregorian-from-absolute date))
                (mark-visible-calendar-date
!                (calendar-gregorian-from-absolute date))))))))
  
  (defun mark-included-diary-files ()
    "Mark the diary entries from other diary files with those of the diary file.
--- 832,843 ----
            (while (string-match "[\^M]" entry)
              (aset entry (match-beginning 0) ?\n )))
          (calendar-for-loop date from first-date to last-date do
!           (if (setq mark (diary-sexp-entry sexp entry
!                                 (calendar-gregorian-from-absolute date)))
                (mark-visible-calendar-date
!                (calendar-gregorian-from-absolute date) 
!                (if (consp mark)
!                    (car mark)))))))))
  
  (defun mark-included-diary-files ()
    "Mark the diary entries from other diary files with those of the diary file.
***************
*** 965,973 ****
    :version "20.3")
  
  (defun diary-entry-time (s)
!   "Time at the beginning of the string S in a military-style integer.  For
! example, returns 1325 for 1:25pm.  Returns `diary-unknown-time' (default value
! -9999) if no time is recognized.  The recognized forms are XXXX, X:XX, or
  XX:XX (military time), and XXam, XXAM, XXpm, XXPM, XX:XXam, XX:XXAM XX:XXpm,
  or XX:XXPM."
    (let ((case-fold-search nil))
--- 943,951 ----
    :version "20.3")
  
  (defun diary-entry-time (s)
!   "Return time at the beginning of the string S as a military-style integer.
! For example, returns 1325 for 1:25pm.
! Returns `diary-unknown-time' (default value -9999) if no time is recognized.  
The recognized forms are XXXX, X:XX, or
  XX:XX (military time), and XXam, XXAM, XXpm, XXPM, XX:XXam, XX:XXAM XX:XXpm,
  or XX:XXPM."
    (let ((case-fold-search nil))
***************
*** 1020,1048 ****
  
  A number of built-in functions are available for this type of diary entry:
  
!       %%(diary-date MONTH DAY YEAR) text
                    Entry applies if date is MONTH, DAY, YEAR if
                    `european-calendar-style' is nil, and DAY, MONTH, YEAR if
                    `european-calendar-style' is t.  DAY, MONTH, and YEAR
                    can be lists of integers, the constant t, or an integer.
!                   The constant t means all values.
  
!       %%(diary-float MONTH DAYNAME N &optional DAY) text
                    Entry will appear on the Nth DAYNAME of MONTH.
                    (DAYNAME=0 means Sunday, 1 means Monday, and so on;
                    if N is negative it counts backward from the end of
                    the month.  MONTH can be a list of months, a single
                    month, or t to specify all months. Optional DAY means
                    Nth DAYNAME of MONTH on or after/before DAY.  DAY defaults
!                   to 1 if N>0 and the last day of the month if N<0.
  
!       %%(diary-block M1 D1 Y1 M2 D2 Y2) text
                    Entry will appear on dates between M1/D1/Y1 and M2/D2/Y2,
                    inclusive.  (If `european-calendar-style' is t, the
                    order of the parameters should be changed to D1, M1, Y1,
!                   D2, M2, Y2.)
  
!       %%(diary-anniversary MONTH DAY YEAR) text
                    Entry will appear on anniversary dates of MONTH DAY, YEAR.
                    (If `european-calendar-style' is t, the order of the
                    parameters should be changed to DAY, MONTH, YEAR.)  Text
--- 998,1032 ----
  
  A number of built-in functions are available for this type of diary entry:
  
!       %%(diary-date MONTH DAY YEAR &optional MARK) text
                    Entry applies if date is MONTH, DAY, YEAR if
                    `european-calendar-style' is nil, and DAY, MONTH, YEAR if
                    `european-calendar-style' is t.  DAY, MONTH, and YEAR
                    can be lists of integers, the constant t, or an integer.
!                   The constant t means all values.  An optional parameter 
!                   MARK specifies a face or single-character string to use
!                   when highlighting the day in the calendar.
  
!       %%(diary-float MONTH DAYNAME N &optional DAY MARK) text
                    Entry will appear on the Nth DAYNAME of MONTH.
                    (DAYNAME=0 means Sunday, 1 means Monday, and so on;
                    if N is negative it counts backward from the end of
                    the month.  MONTH can be a list of months, a single
                    month, or t to specify all months. Optional DAY means
                    Nth DAYNAME of MONTH on or after/before DAY.  DAY defaults
!                   to 1 if N>0 and the last day of the month if N<0.  An 
!                   optional parameter MARK specifies a face or 
single-character 
!                   string to use when highlighting the day in the calendar.
  
!       %%(diary-block M1 D1 Y1 M2 D2 Y2 &optional MARK) text
                    Entry will appear on dates between M1/D1/Y1 and M2/D2/Y2,
                    inclusive.  (If `european-calendar-style' is t, the
                    order of the parameters should be changed to D1, M1, Y1,
!                   D2, M2, Y2.)  An optional parameter MARK specifies a face 
!                   or single-character string to use when highlighting the 
!                   day in the calendar.
  
!       %%(diary-anniversary MONTH DAY YEAR &optional MARK) text
                    Entry will appear on anniversary dates of MONTH DAY, YEAR.
                    (If `european-calendar-style' is t, the order of the
                    parameters should be changed to DAY, MONTH, YEAR.)  Text
***************
*** 1050,1065 ****
                    of years since the MONTH DAY, YEAR and %s will be replaced
                    by the ordinal ending of that number (that is, `st', `nd',
                    `rd' or `th', as appropriate.  The anniversary of February
!                   29 is considered to be March 1 in a non-leap year.
  
!       %%(diary-cyclic N MONTH DAY YEAR) text
                    Entry will appear every N days, starting MONTH DAY, YEAR.
                    (If `european-calendar-style' is t, the order of the
                    parameters should be changed to N, DAY, MONTH, YEAR.)  Text
                    can contain %d or %d%s; %d will be replaced by the number
                    of repetitions since the MONTH DAY, YEAR and %s will
                    be replaced by the ordinal ending of that number (that is,
!                   `st', `nd', `rd' or `th', as appropriate.
  
        %%(diary-remind SEXP DAYS &optional MARKING) text
                    Entry is a reminder for diary sexp SEXP.  DAYS is either a
--- 1034,1053 ----
                    of years since the MONTH DAY, YEAR and %s will be replaced
                    by the ordinal ending of that number (that is, `st', `nd',
                    `rd' or `th', as appropriate.  The anniversary of February
!                   29 is considered to be March 1 in a non-leap year.  An 
!                   optional parameter MARK specifies a face or 
single-character 
!                   string to use when highlighting the day in the calendar.
  
!       %%(diary-cyclic N MONTH DAY YEAR &optional MARK) text
                    Entry will appear every N days, starting MONTH DAY, YEAR.
                    (If `european-calendar-style' is t, the order of the
                    parameters should be changed to N, DAY, MONTH, YEAR.)  Text
                    can contain %d or %d%s; %d will be replaced by the number
                    of repetitions since the MONTH DAY, YEAR and %s will
                    be replaced by the ordinal ending of that number (that is,
!                   `st', `nd', `rd' or `th', as appropriate.  An optional 
!                   parameter MARK specifies a face or single-character string 
!                   to use when highlighting the day in the calendar.
  
        %%(diary-remind SEXP DAYS &optional MARKING) text
                    Entry is a reminder for diary sexp SEXP.  DAYS is either a
***************
*** 1184,1191 ****
          (let ((diary-entry (diary-sexp-entry sexp entry date)))
            (if diary-entry
                (subst-char-in-region line-start (point) ?\^M ?\n t))
!           (add-to-diary-list date diary-entry specifier)
!           (setq entry-found (or entry-found diary-entry)))))
      entry-found))
  
  (defun diary-sexp-entry (sexp entry date)
--- 1172,1183 ----
          (let ((diary-entry (diary-sexp-entry sexp entry date)))
            (if diary-entry
                (subst-char-in-region line-start (point) ?\^M ?\n t))
!           (add-to-diary-list date 
!                            (if (consp diary-entry)
!                                (cdr diary-entry)
!                              diary-entry)
!                            specifier)
!         (setq entry-found (or entry-found diary-entry)))))
      entry-found))
  
  (defun diary-sexp-entry (sexp entry date)
***************
*** 1208,1225 ****
                                      lines)))
                                diary-file sexp)
                       (sleep-for 2))))))
!     (if (stringp result)
!         result
!       (if result
!           entry
!         nil))))
  
! (defun diary-date (month day year)
    "Specific date(s) diary entry.
  Entry applies if date is MONTH, DAY, YEAR if `european-calendar-style' is nil,
  and DAY, MONTH, YEAR if `european-calendar-style' is t.  DAY, MONTH, and YEAR
  can be lists of integers, the constant t, or an integer.  The constant t means
! all values."
    (let* ((dd (if european-calendar-style
                  month
                day))
--- 1200,1220 ----
                                      lines)))
                                diary-file sexp)
                       (sleep-for 2))))))
!     (cond ((stringp result) result)
!         ((and (consp result)
!               (stringp (cdr result))) result)
!         (result entry)
!           (t nil))))
  
! (defun diary-date (month day year &optional mark)
    "Specific date(s) diary entry.
  Entry applies if date is MONTH, DAY, YEAR if `european-calendar-style' is nil,
  and DAY, MONTH, YEAR if `european-calendar-style' is t.  DAY, MONTH, and YEAR
  can be lists of integers, the constant t, or an integer.  The constant t means
! all values.
! 
! An optional parameter MARK specifies a face or single-character string to 
! use when highlighting the day in the calendar."
    (let* ((dd (if european-calendar-style
                  month
                day))
***************
*** 1241,1252 ****
               (eq year t)))
          entry)))
  
! (defun diary-block (m1 d1 y1 m2 d2 y2)
    "Block diary entry.
  Entry applies if date is between, or on one of, two dates.
  The order of the parameters is
  M1, D1, Y1, M2, D2, Y2 if `european-calendar-style' is nil, and
! D1, M1, Y1, D2, M2, Y2 if `european-calendar-style' is t."
    (let ((date1 (calendar-absolute-from-gregorian
                  (if european-calendar-style
                      (list d1 m1 y1)
--- 1236,1251 ----
               (eq year t)))
          entry)))
  
! (defun diary-block (m1 d1 y1 m2 d2 y2 &optional mark)
    "Block diary entry.
  Entry applies if date is between, or on one of, two dates.
  The order of the parameters is
  M1, D1, Y1, M2, D2, Y2 if `european-calendar-style' is nil, and
! D1, M1, Y1, D2, M2, Y2 if `european-calendar-style' is t.
! 
! An optional parameter MARK specifies a face or single-character string to 
! use when highlighting the day in the calendar."
! 
    (let ((date1 (calendar-absolute-from-gregorian
                  (if european-calendar-style
                      (list d1 m1 y1)
***************
*** 1257,1271 ****
                    (list m2 d2 y2))))
          (d (calendar-absolute-from-gregorian date)))
      (if (and (<= date1 d) (<= d date2))
!         entry)))
  
! (defun diary-float (month dayname n &optional day)
    "Floating diary entry--entry applies if date is the nth dayname of month.
  Parameters are MONTH, DAYNAME, N.  MONTH can be a list of months, the constant
  t, or an integer.  The constant t means all months.  If N is negative, count
  backward from the end of the month.
  
! An optional parameter DAY means the Nth DAYNAME on or after/before MONTH DAY."
  ;; This is messy because the diary entry may apply, but the date on which it
  ;; is based can be in a different month/year.  For example, asking for the
  ;; first Monday after December 30.  For large values of |n| the problem is
--- 1256,1272 ----
                    (list m2 d2 y2))))
          (d (calendar-absolute-from-gregorian date)))
      (if (and (<= date1 d) (<= d date2))
!         (cons mark entry))))
  
! (defun diary-float (month dayname n &optional day mark)
    "Floating diary entry--entry applies if date is the nth dayname of month.
  Parameters are MONTH, DAYNAME, N.  MONTH can be a list of months, the constant
  t, or an integer.  The constant t means all months.  If N is negative, count
  backward from the end of the month.
  
! An optional parameter DAY means the Nth DAYNAME on or after/before MONTH DAY.
! Optional MARK specifies a face or single-character string to use when 
! highlighting the day in the calendar."
  ;; This is messy because the diary entry may apply, but the date on which it
  ;; is based can be in a different month/year.  For example, asking for the
  ;; first Monday after December 30.  For large values of |n| the problem is
***************
*** 1319,1328 ****
                                            1
                                          (calendar-last-day-of-month m2 y2)))
                                d2)))))
!            entry))))
  
  
! (defun diary-anniversary (month day year)
    "Anniversary diary entry.
  Entry applies if date is the anniversary of MONTH, DAY, YEAR if
  `european-calendar-style' is nil, and DAY, MONTH, YEAR if
--- 1320,1329 ----
                                            1
                                          (calendar-last-day-of-month m2 y2)))
                                d2)))))
!            (cons mark entry)))))
  
  
! (defun diary-anniversary (month day year &optional mark)
    "Anniversary diary entry.
  Entry applies if date is the anniversary of MONTH, DAY, YEAR if
  `european-calendar-style' is nil, and DAY, MONTH, YEAR if
***************
*** 1330,1336 ****
  %d will be replaced by the number of years since the MONTH DAY, YEAR and the
  %s will be replaced by the ordinal ending of that number (that is, `st', `nd',
  `rd' or `th', as appropriate.  The anniversary of February 29 is considered
! to be March 1 in non-leap years."
    (let* ((d (if european-calendar-style
                  month
                day))
--- 1331,1340 ----
  %d will be replaced by the number of years since the MONTH DAY, YEAR and the
  %s will be replaced by the ordinal ending of that number (that is, `st', `nd',
  `rd' or `th', as appropriate.  The anniversary of February 29 is considered
! to be March 1 in non-leap years.
! 
! An optional parameter MARK specifies a face or single-character string to 
! use when highlighting the day in the calendar."
    (let* ((d (if european-calendar-style
                  month
                day))
***************
*** 1343,1357 ****
          (setq m 3
                d 1))
      (if (and (> diff 0) (calendar-date-equal (list m d y) date))
!         (format entry diff (diary-ordinal-suffix diff)))))
  
! (defun diary-cyclic (n month day year)
    "Cycle diary entry--entry applies every N days starting at MONTH, DAY, YEAR.
  If `european-calendar-style' is t, parameters are N, DAY, MONTH, YEAR.
  ENTRY can contain `%d' or `%d%s'; the %d will be replaced by the number of
  repetitions since the MONTH DAY, YEAR and %s will be replaced by the
  ordinal ending of that number (that is, `st', `nd', `rd' or `th', as
! appropriate."
    (let* ((d (if european-calendar-style
                  month
                day))
--- 1347,1364 ----
          (setq m 3
                d 1))
      (if (and (> diff 0) (calendar-date-equal (list m d y) date))
!         (cons mark (format entry diff (diary-ordinal-suffix diff))))))
  
! (defun diary-cyclic (n month day year &optional mark)
    "Cycle diary entry--entry applies every N days starting at MONTH, DAY, YEAR.
  If `european-calendar-style' is t, parameters are N, DAY, MONTH, YEAR.
  ENTRY can contain `%d' or `%d%s'; the %d will be replaced by the number of
  repetitions since the MONTH DAY, YEAR and %s will be replaced by the
  ordinal ending of that number (that is, `st', `nd', `rd' or `th', as
! appropriate.
! 
! An optional parameter MARK specifies a face or single-character string to 
! use when highlighting the day in the calendar."
    (let* ((d (if european-calendar-style
                  month
                day))
***************
*** 1363,1369 ****
                     (list m d year))))
           (cycle (/ diff n)))
      (if (and (>= diff 0) (zerop (% diff n)))
!         (format entry cycle (diary-ordinal-suffix cycle)))))
  
  (defun diary-ordinal-suffix (n)
    "Ordinal suffix for N. (That is, `st', `nd', `rd', or `th', as 
appropriate.)"
--- 1370,1376 ----
                     (list m d year))))
           (cycle (/ diff n)))
      (if (and (>= diff 0) (zerop (% diff n)))
!         (cons mark (format entry cycle (diary-ordinal-suffix cycle))))))
  
  (defun diary-ordinal-suffix (n)
    "Ordinal suffix for N. (That is, `st', `nd', `rd', or `th', as 
appropriate.)"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]