Mercurial > emacs
changeset 6037:324bb3410cfb
Fix calendar-cursor-to-date to handle starred days correctly.
author | Edward M. Reingold <reingold@emr.cs.iit.edu> |
---|---|
date | Wed, 23 Feb 1994 02:38:23 +0000 |
parents | 7e9984c9a36e |
children | 2f1deaa86ee2 |
files | lisp/calendar/calendar.el |
diffstat | 1 files changed, 21 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/calendar/calendar.el Wed Feb 23 00:33:13 1994 +0000 +++ b/lisp/calendar/calendar.el Wed Feb 23 02:38:23 1994 +0000 @@ -1946,24 +1946,27 @@ "Returns a list of the month, day, and year of current cursor position. If cursor is not on a specific date, signals an error if optional parameter ERROR is t, otherwise just returns nil." - (if (and (looking-at "[*0-9]") - (< 2 (count-lines (point-min) (point)))) - (save-excursion - (re-search-backward "[^*0-9]") - (forward-char 1) - (let* - ((day (string-to-int (buffer-substring (point) (+ 3 (point))))) - (day (if (= 0 day) starred-day day)) - (segment (/ (current-column) 25)) - (month (% (+ displayed-month segment -1) 12)) - (month (if (= 0 month) 12 month)) - (year - (cond - ((and (= 12 month) (= segment 0)) (1- displayed-year)) - ((and (= 1 month) (= segment 2)) (1+ displayed-year)) - (t displayed-year)))) - (list month day year))) - (if error (error "Cursor is not on a date!")))) + (let* ((segment (/ (current-column) 25)) + (month (% (+ displayed-month segment -1) 12)) + (month (if (= 0 month) 12 month)) + (year + (cond + ((and (= 12 month) (= segment 0)) (1- displayed-year)) + ((and (= 1 month) (= segment 2)) (1+ displayed-year)) + (t displayed-year)))) + (if (and (looking-at "[0-9]") + (< 2 (count-lines (point-min) (point)))) + (save-excursion + (re-search-backward "[^0-9]") + (list month + (string-to-int (buffer-substring (1+ (point)) (+ 4 (point)))) + year)) + (if (looking-at "\\*") + (save-excursion + (re-search-backward "[^*]") + (if (looking-at ".\\*\\*") + (list month starred-day year) + (if error (error "Cursor is not on a date!")))))))) (defun calendar-cursor-to-nearest-date () "Move the cursor to the closest date.