1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 08:43:40 -07:00
emacs/etc
Liu Hui e6350bb179 Support displaying more months in the calendar
* lisp/calendar/calendar.el (calendar-month-edges): Fix typo.
(calendar-total-months): New variable.
(calendar-get-month-range, calendar-get-date-range)
(calendar--month-overlap-p, calendar-month-visible-p)
(calendar-nongregorian-date-visible-p): New functions.
(calendar-nongregorian-visible-p): Declare obsolete.
(calendar-recompute-layout-variables, calendar-generate):
Replace fixed month numbers with 'calendar-total-months'.
(calendar-cursor-to-date, calendar-date-is-visible-p): Support
the calendar with more than three months.
(calendar-mode): Make some variables buffer-local to allow
calendar-mode buffers showing different number of months.
(calendar-mode-map): Use new command names.

* lisp/calendar/cal-move.el (calendar-goto-today): Always move
the cursor to today's date.
(calendar--show-month-at-edge): New function.
(calendar-recenter, calendar-forward-day): Support the calendar
with more than three months.
(calendar-forward-month, calendar-end-of-month)
(calendar-beginning-of-year, calendar-end-of-year): Place the
new month at the edge instead of the second month segment, to
prevent the cursor from jumping back and forth.  This is
consistent with the behavior of calendar-forward-day/week.
(calendar-scroll-left): Maintain the relative position of the
cursor with respect to the window, when the old date is out of
view.
(calendar-scroll-left-three-months)
(calendar-scroll-right-three-months): Replace the fixed month
number with the actual number of months.  Rename ...
(calendar-scroll-calendar-left, calendar-scroll-calendar-right):
... to new commands.  Make old names as aliases and mark them
obsolete.
(calendar-show-more-months, calendar-show-fewer-months): New
commands.

* lisp/calendar/cal-menu.el (cal-menu-holiday-window-suffix):
Use the actual date range instead of three months.
(cal-menu-scroll-menu, cal-menu-global-mouse-menu): Use new
command names and update description.

* lisp/calendar/holidays.el (holidays, list-holidays)
(calendar-check-holidays, holiday-in-range): Use
calendar-total-months.
(calendar-list-holidays, holiday-fixed, holiday-float)
(holiday-sexp): Replace displayed-year/month with the actual
calendar range.
(holiday-after, holiday-easter-etc-abs)
(holiday-greek-orthodox-easter-abs): New functions.
(holiday-advent, holiday-easter-etc)
(holiday-greek-orthodox-easter): Look up holidays in all visible
years instead of current displayed-year.

* lisp/calendar/solar.el (solar-equinoxes-solstices): Search
equinoxes and solstices in all visible months.
(solar-equinoxes-solstices-1): New function.

* lisp/calendar/lunar.el (lunar-phase-list): Add optional
argument.
(calendar-lunar-phases): Use visible calendar range.

* lisp/calendar/cal-china.el (holiday-chinese-new-year)
(holiday-chinese-winter-solstice, holiday-chinese-qingming)
(holiday-chinese): Replace displayed-year/month with the actual
calendar range, and look up holidays in all visible years.

* lisp/calendar/cal-julian.el (holiday-julian): Use
calendar-nongregorian-date-visible-p because there may exist
more than one corresponding dates when the calendar shows more
months.

* lisp/calendar/cal-bahai.el (holiday-bahai): Support calendar
with more than three months.
(holiday-bahai-new-year, holiday-bahai-twin-holy-birthdays):
Look up holidays in all visible years.
(holiday-bahai-new-year-1, holiday-bahai-twin-holy-birthdays-1):
New functions.

* lisp/calendar/cal-hebrew.el (calendar-hebrew-date-is-visible-p)
(holiday-hebrew, calendar-hebrew-mark-date-pattern): Support
calendar with more than three months, in which more than one
holidays may exist.
(holiday-hebrew-rosh-hashanah-1, holiday-hebrew-hanukkah-1)
(holiday-hebrew-passover-1): New functions.
(holiday-hebrew-rosh-hashanah, holiday-hebrew-hanukkah)
(holiday-hebrew-passover, holiday-hebrew-tisha-b-av): Look up
holidays in all visible years.

* lisp/calendar/cal-islam.el (holiday-islamic): Support calendar
with more than three months.
(holiday-islamic-new-year): Find holidays in all visible years.

* lisp/calendar/diary-lib.el (diary-mark-sexp-entries)
(calendar-mark-days-named, calendar-mark-date-pattern)
(calendar-mark-complex): Use the displayed range instead of the
three-month range.
(calendar-mark-1): Fix marking dates in calendar with more than
three months.

* test/lisp/calendar/holidays-tests.el
(holidays-test-holiday-easter-etc, holidays-test--get-holidays)
(holidays-test-more-months): New test file.

* doc/emacs/calendar.texi: Mention new commands and update
related description.
* etc/NEWS: Announce new commands.  (bug#80099)
2026-02-22 16:21:13 +02:00
..
charsets ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
e Add auto-margin enable/disable to term 2025-03-02 16:01:13 -05:00
forms ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
gnus
images ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
nxml
org ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
refcards ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
schema ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
srecode ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
themes Add a theme and minor mode for new users 2026-02-20 21:18:14 +01:00
tutorials ; List my areas of interest in maintaining. 2026-02-12 19:15:39 +01:00
AUTHORS Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
CALC-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.1 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
compilation.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
COPYING
copyright-assign.txt Add assignment form as etc/copyright-assign.txt 2024-06-23 00:24:31 +02:00
DEBUG ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
DEVEL.HUMOR ; Fix punctuation in etc/* 2024-07-27 01:51:47 +02:00
DISTRIB ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
edt-user.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
EGLOT-NEWS Eglot: simplify Imenu setup again 2026-01-21 23:09:19 +00:00
emacs-buffer.gdb ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacs-mail.desktop
emacs.desktop
emacs.icon
emacs.metainfo.xml ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacs.service
emacs_lldb.py ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacsclient-mail.desktop
emacsclient.desktop
enriched.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ERC-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ETAGS.EBNF ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ETAGS.README ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
future-bug ; Fix typos 2025-01-23 03:14:37 +01:00
gnus-tut.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
grep.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
HELLO ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
HISTORY Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
JOKES
MACHINES ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
MH-E-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS Support displaying more months in the calendar 2026-02-22 16:21:13 +02:00
NEWS.1-17 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.18 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.19 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.20 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.21 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.22 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.23 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.24 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.25 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.26 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.27 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.28 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.29 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.30 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEXTSTEP ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NXML-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ORG-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
org.gnu.emacs.defaults.gschema.xml ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
package-autosuggest.eld Detect more package suggestions 2026-02-09 21:12:21 +01:00
package-keyring.gpg * etc/package-keyring.gpg: Update expiration and add new key 2024-10-22 12:35:18 -04:00
PROBLEMS ; Mention in PROBLEMS the issue with XIM character-selection window 2026-01-03 12:30:12 +02:00
ps-prin0.ps ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-prin1.ps ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
publicsuffix.txt ; * etc/publicsuffix.txt: Update from upstream. 2024-12-22 13:50:41 +02:00
README ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rgb.txt
ses-example.ses ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
spook.lines
symbol-releases.eld * etc/symbol-releases.eld: 'any' and 'all' added in Emacs 31 2026-02-01 18:20:56 +01:00
TERMS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
TODO ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
w32-feature.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00

This directory contains the architecture-independent files used by or
with Emacs.  This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.

COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES

File: emacs.icon
  Author: Sun Microsystems, Inc
  Copyright (C) 1999, 2001-2026 Free Software Foundation, Inc.
  License: GNU General Public License version 3 or later (see COPYING)