* lisp/calendar/cal-bahai.el: Use lexical-binding.
(calendar-bahai-date-string): Use `calendar-dlet*`.
* lisp/calendar/cal-china.el: Use lexical-binding.
(calendar-chinese-zodiac-sign-on-or-after)
(calendar-chinese-new-moon-on-or-after): Declare `year`.
(calendar-chinese-from-absolute-for-diary)
(calendar-chinese-to-absolute-for-diary)
(calendar-chinese-mark-date-pattern): Avoid dynbound var `date` as
function argument.
* lisp/calendar/cal-coptic.el: Use lexical-binding.
(calendar-coptic-date-string): Use `calendar-dlet*`.
(calendar-ethiopic-to-absolute, calendar-ethiopic-from-absolute)
(calendar-ethiopic-date-string, calendar-ethiopic-goto-date):
Avoid dynbound var `date` as function argument.
* lisp/calendar/cal-french.el: Use lexical-binding.
* lisp/calendar/cal-hebrew.el: Use lexical-binding.
(holiday-hebrew-hanukkah): Don't use the third form in `dotimes`.
* lisp/calendar/cal-islam.el: Use lexical-binding.
(calendar-islamic-to-absolute): Comment out unused vars `month` and `day`.
* lisp/calendar/cal-move.el:
* lisp/calendar/cal-mayan.el:
* lisp/calendar/cal-iso.el: Use lexical-binding.
* lisp/calendar/cal-persia.el: Use lexical-binding.
(calendar-persian-date-string): Use `calendar-dlet*`.
* lisp/calendar/cal-html.el: Use lexical-binding.
(cal-html-insert-minical): Comment out unused var `date`.
(cal-html-cursor-month, cal-html-cursor-year): Mark `event` arg as unused.
* lisp/calendar/cal-menu.el: Use lexical-binding.
(diary-list-include-blanks): Declare var.
* lisp/calendar/cal-x.el: Use lexical-binding.
* lisp/calendar/cal-tex.el: Use lexical-binding.
(diary-list-include-blanks): Declare var.
(cal-tex-insert-days, cal-tex-cursor-week-iso, cal-tex-week-hours)
(cal-tex-weekly-common, cal-tex-cursor-filofax-2week)
(cal-tex-cursor-filofax-daily, cal-tex-daily-page): Declare `date`
as dynbound for the benefit of `cal-tex-daily-string`.
* lisp/calendar/cal-china.el (entry):
* lisp/calendar/cal-hebrew.el (entry): Suppress warning about
dynamically bound `entry', which has to be bound for
diary-chinese-anniversary and diary-hebrew-birthday to work.
These function can be used in the sexp part of users' diary files.
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November. Change these FTP URLs to https://ftp.gnu.org
instead. Make similar changes for URLs to other organizations moving
away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
* doc/emacs/cal-xtra.texi (Non-Gregorian Diary): Document new features for
Chinese calendar and diary.
* etc/NEWS: Mention support for Chinese dates in calendar and diary.
* lisp/calendar/cal-china.el (calendar-chinese-month-name-array): New var.
(calendar-chinese-from-absolute-for-diary)
(calendar-chinese-to-absolute-for-diary)
(calendar-chinese-mark-date-pattern, diary-chinese-mark-entries)
(diary-chinese-list-entries): New functions to list and mark
Chinese diary entries in the calendar window.
(diary-chinese-anniversary)
(diary-chinese-insert-anniversary-entry)
(diary-chinese-insert-entry, diary-chinese-insert-monthly-entry)
(diary-chinese-insert-yearly-entry): New commands to insert
Chinese diary entries.
* lisp/calendar/cal-menu.el (cal-menu-diary-menu): Add entries for
inserting Chinese diary entries.
* lisp/calendar/calendar.el (diary-chinese-entry-symbol): New
customizable variable.
(calendar-mode-map): Add bindings for inserting Chinese diary
entries.
* lisp/calendar/diary-lib.el (diary-font-lock-keywords): Support
font-locking Chinese dates.
Fixes: debbugs:17393
(calendar-chinese-time-zone): Rename chinese-calendar-time-zone.
Keep old name as alias, update users.
(calendar-chinese-location-name): Rename chinese-calendar-location-name.
Keep old name as alias.
(calendar-chinese-daylight-time-offset):
Rename chinese-calendar-daylight-time-offset. Keep old name as alias,
update users.
(calendar-chinese-standard-time-zone-name):
Rename chinese-calendar-standard-time-zone-name.
Keep old name as alias, update users.
(calendar-chinese-daylight-saving-start):
Rename chinese-calendar-daylight-savings-starts.
Keep old name as alias, update users.
(calendar-chinese-daylight-saving-end):
Rename chinese-calendar-daylight-savings-ends. Keep old name as alias,
update users.
(calendar-chinese-daylight-saving-start-time):
Rename chinese-calendar-daylight-savings-starts-time.
Keep old name as alias, update users.
(calendar-chinese-daylight-saving-end-time):
Rename chinese-calendar-daylight-savings-ends-time.
Keep old name as alias, update users.
(calendar-chinese-celestial-stem): Rename
calendar-chinese-celestial-stem. Keep old name as alias, update users.
(calendar-chinese-terrestrial-branch):
Rename calendar-chinese-terrestrial-branch. Keep old name as alias,
update users.
(calendar-chinese-zodiac-sign-on-or-after):
Rename chinese-zodiac-sign-on-or-after. Update callers.
(calendar-chinese-new-moon-on-or-after): Rename chinese-new-moon-on-or-after.
Update callers.
(calendar-chinese-month-list): Rename chinese-month-list. Update callers.
(calendar-chinese-number-months): Rename number-chinese-months. Update callers.
(calendar-chinese-compute-year): Rename compute-chinese-year. Update callers.
(calendar-chinese-year-cache): Rename chinese-year-cache. Update users.
(calendar-chinese-year): Rename chinese-year. Update callers.
(calendar-chinese-year-cache-init): Rename chinese-year-cache-init.
(calendar-chinese-to-absolute): Rename calendar-absolute-from-chinese.
Keep old name as alias, update callers.
(calendar-chinese-print-date): Rename calendar-print-chinese-date.
Keep old name as alias, update callers.
(calendar-chinese-months-to-alist): Rename make-chinese-month-assoc-list.
Update callers.
(calendar-chinese-months): Rename chinese-months. Update callers.
(calendar-chinese-goto-date): Rename calendar-goto-chinese-date.
Keep old name as alias, update callers.