* lisp/gnus: Use lexical-binding in all the files
* lisp/gnus/gnus-group.el (features): Use `dlet`.
(gnus-tmp-level, gnus-tmp-marked, gnus-tmp-group): Declare vars.
(gnus-group-insert-group-line): Bind dynbound vars via `let` rather
than as formal args. Bind `number` as dynbound.
(gnus-visual, gnus-score-find-score-files-function)
(gnus-home-score-file, gnus-apply-kill-hook)
(gnus-summary-expunge-below): Declare vars.
(gnus-group-restart, gnus-group-list-plus): Fix `interactive` spec
since the arg is unused.
* lisp/gnus/mail-source.el (mail-source-bind, mail-source-bind-common):
Use `dlet` and suppress the warnings about the non-prefixed dynbound vars.
(mail-source-set-1): Remove unused var `auth-info`.
(mail-source-call-script): Remove unused var `background`.
(mail-source-fetch-pop, mail-source-check-pop): Bind pop3 vars with `dlet`.
* lisp/gnus/gnus-int.el (mail-source-plugged, gnus-inhibit-demon):
Declare vars.
(gnus-server-opened, gnus-status-message)
(gnus-open-server, gnus-close-server, gnus-request-list)
(gnus-finish-retrieve-group-infos, gnus-retrieve-group-data-early)
(gnus-request-list-newsgroups, gnus-request-newgroups)
(gnus-request-regenerate, gnus-request-compact, gnus-request-group)
(gnus-retrieve-groups, gnus-request-post, gnus-request-expunge-group)
(gnus-request-scan, gnus-request-update-info, gnus-request-marks)
(gnus-request-accept-article, gnus-request-create-group)
(gnus-asynchronous-p, gnus-remove-denial):
Bind `gnus-command-method` via `let` rather than as formal args.
* lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line):
Pass documented vars to eval for `gnus-topic-line-format-spec`.
* lisp/gnus/message.el (message-yank-original): Use `cl-progv` rather
than `eval` to bind the vars from `message-cite-style`.
* lisp/gnus/mml.el (mml-parse-1): Use `apply` instead of `eval`.
(gnus-newsgroup-name, gnus-displaying-mime, gnus-newsgroup-name)
(gnus-article-prepare-hook, gnus-newsgroup-charset)
(gnus-original-article-buffer, gnus-message-buffer)
(message-this-is-news, message-this-is-mail): Declare vars.
* lisp/gnus/deuglify.el (gnus-outlook-rearrange-article): Remove unused
var `cite-marks`.
* lisp/gnus/gnus-art.el (ansi-color-context-region): Declare var.
(gnus-mime-display-attachment-buttons-in-header): Move declaration
before first use.
(gnus-mime-display-alternative): Remove unused var `from`.
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-list): Remove unused
var `start` `end`.
* lisp/gnus/gnus-cache.el (gnus-article-decode-hook)
(nnml-generate-active-function): Declare var.
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Remove unused
var `keywords`.
* lisp/gnus/gnus-cloud.el (gnus-cloud-encode-data): Remove unused var
`cipher`.
(gnus-cloud-ensure-cloud-group): Remove unused var `method`.
* lisp/gnus/gnus-delay.el (gnus-delay-article): Remove unused var `days`.
* lisp/gnus/gnus-html.el (gnus-html-wash-images): Remove unused vars
`tag`, `string`, and `images`.
(gnus-html-wash-tags): Remove unused vars `string` and `images`.
* lisp/gnus/gnus-msg.el (gnus-msg-mail): Remove unused var `group-name`.
(gnus-group-mail, gnus-group-news, gnus-summary-mail-other-window)
(gnus-summary-news-other-window):
Remove unused vars `group` and `buffer`.
(gnus-configure-posting-styles): Remove unused vars `style` and `attribute`.
* lisp/gnus/gnus-picon.el (gnus-picon-find-face): Remove unused vars
`database`, `directory`, and `instance`.
(gnus-picon-transform-newsgroups): Remove unused var `point`.
* lisp/gnus/gnus-range.el (gnus-range-difference): Remove unused var `safe`.
* lisp/gnus/gnus-score.el (gnus-score-load-file): Remove unused var
`score-fn`.
* lisp/gnus/gnus-sum.el (message-options-set-recipient): Declare var.
* lisp/gnus/gnus-undo.el (gnus-undo): Fix docstring lie.
* lisp/gnus/gnus-util.el (print-string-length)
(iswitchb-make-buflist-hook): Declare vars.
(gnus-emacs-version): Remove unused var `codename`.
(gnus-rename-file): Remove unused vars `old-name` and `new-name`.
* lisp/gnus/gnus-uu.el (gnus-uu-yenc-article): Remove unused var
`start-char`.
(gnus-asynchronous): Declare var.
* lisp/gnus/mm-partial.el (gnus-displaying-mime): Declare var.
(mm-inline-partial): Remove unused var `buffer`.
* lisp/gnus/mm-view.el (w3m-force-redisplay, w3m-safe-url-regexp)
(gnus-displaying-mime, gnus-original-article-buffer)
(gnus-article-prepare-hook): Declare vars.
* lisp/gnus/mml-smime.el (mml-smime-epg-encrypt): Remove unused var
`boundary`.
(mml-smime-epg-verify): Remove unused vars `plain` and `signature-file`.
* lisp/gnus/mml1991.el (pgg-text-mode): Declare var.
* lisp/gnus/mml2015.el (pgg-text-mode): Declare var.
(mml2015-pgg-decrypt): Remove unused var `result`.
(mml2015-epg-key-image-to-string): Remove unused var `error`.
(mml2015-epg-decrypt): Remove unused var `result`.
(mml2015-epg-verify): Remove unused vars `plain` and `signature-file`.
* lisp/gnus/nnbabyl.el (nnml-current-directory): Declare var.
* lisp/gnus/nndiary.el (nndiary-files): Move declaration before first use.
* lisp/gnus/nnfolder.el (nnfolder-request-accept-article):
Remove unused var `buf`.
* lisp/gnus/nnmail.el (nnmail-parse-active): Remove unused var `err`.
* lisp/gnus/nnmairix.el (nnmairix-request-group): Remove unused var `args`.
(nnmairix-request-create-group): Remove unused var `info`.
(nnmairix-request-list): Remove unused var `folder`.
(nnmairix-request-set-mark): Remove unused var `propto`.
(nnmairix-request-set-mark): Remove unused vars `number` and `method`.
(nnmairix-close-group): Remove unused var `method`.
(nnmairix-create-search-group-from-message): Remove unused var `cq`.
(nnmairix-create-server-and-default-group): Remove unused var `create`.
(nnmairix-purge-old-groups): Remove unused var `folder`.
(nnmairix-remove-tick-mark-original-article, nnmairix-get-valid-servers):
Remove unused var `cur`.
(nnmairix-replace-group-and-numbers): Remove unused var `header`.
(nnmairix-goto-original-article): Remove unused var `rval`.
(nnmairix-widget-create-query): Remove unused var `allwidgets`.
* lisp/gnus/nnmbox.el (nnml-current-directory): Declare var.
* lisp/gnus/nnmh.el (nnmh-toplev): Move declaration before first use.
(nnmh-request-list-1): Remove unused var `rdir`.
* lisp/gnus/nnml.el (nnml-generate-nov-file): Remove unused var `file`.
* lisp/gnus/nnrss.el (nnrss-request-article): Remove unused var `post`.
(nnrss-request-article): Remove unused var `fn`.
(nnrss-check-group): Remove unused var `rdf-ns`.
* lisp/gnus/nnweb.el (nnweb-request-article): Remove unused var `active`.
(nnweb-google-parse-1): Remove unused var `Score`.
* lisp/gnus/spam-stat.el (spam-stat-error-holder): Remove var.
(spam-stat-buffer-words-with-scores): Remove unused var `word`.
(spam-stat-score-buffer): Remove unused var `spam-stat-error-holder`.
(spam-stat-split-fancy): Use `err` instead of `spam-stat-error-holder`.
* lisp/gnus/spam-wash.el (spam-wash): Remove unused var `handle`.
* lisp/gnus/spam.el (spam-copy-or-move-routine): Remove unused vars
`article` and `mark`.
(spam-register-routine): Remove unused var `article`.
(spam-log-undo-registration): Remove unused var `found`.
(spam-ifile-register-with-ifile): Remove unused var `parameters`.
(spam-check-stat): Remove unused vars `category` and `return`.
(spam-parse-list): Remove unused var `found`.
(spam-filelist-register-routine): Remove unused var `from`.
2021-01-30 23:44:00 +00:00
|
|
|
;;; gnus-diary.el --- Wrapper around the NNDiary Gnus back end -*- lexical-binding: t; -*-
|
2004-09-04 13:13:48 +00:00
|
|
|
|
2022-01-01 07:45:51 +00:00
|
|
|
;; Copyright (C) 1999-2022 Free Software Foundation, Inc.
|
2004-09-04 13:13:48 +00:00
|
|
|
|
2019-05-26 07:58:28 +00:00
|
|
|
;; Author: Didier Verna <didier@didierverna.net>
|
2004-09-04 13:13:48 +00:00
|
|
|
;; Created: Tue Jul 20 10:42:55 1999
|
|
|
|
;; Keywords: calendar mail news
|
|
|
|
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
2008-05-06 03:56:49 +00:00
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
;; (at your option) any later version.
|
2004-09-04 13:13:48 +00:00
|
|
|
|
2008-05-06 03:56:49 +00:00
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;; GNU General Public License for more details.
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
2017-09-13 22:52:52 +00:00
|
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
;; Contents management by FCM version 0.1.
|
|
|
|
|
2021-09-14 06:43:18 +00:00
|
|
|
;; gnus-diary is a utility toolkit used on top of the nndiary back end. It is
|
2007-05-10 18:44:49 +00:00
|
|
|
;; now fully documented in the Gnus manual.
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
(require 'nndiary)
|
|
|
|
(require 'message)
|
|
|
|
(require 'gnus-art)
|
|
|
|
|
|
|
|
(defgroup gnus-diary nil
|
2007-05-10 18:44:49 +00:00
|
|
|
"Utilities on top of the nndiary back end for Gnus."
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-324
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 70)
- Update from CVS
2005-05-17 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus/canlock.el (canlock): Change the parent group to news.
* lisp/gnus/deuglify.el (gnus-outlook-deuglify): Add :group.
* lisp/gnus/dig.el (dig): Add :group.
* lisp/gnus/gnus-art.el (gnus-inhibit-mime-unbuttonizing): Add :group.
* lisp/gnus/gnus-cite.el (gnus-cite-attribution-face): Add :group.
(gnus-cite-face-1, gnus-cite-face-2, gnus-cite-face-3): Ditto.
(gnus-cite-face-4, gnus-cite-face-5, gnus-cite-face-6): Ditto.
(gnus-cite-face-7, gnus-cite-face-8, gnus-cite-face-9): Ditto.
(gnus-cite-face-10, gnus-cite-face-11): Ditto.
* lisp/gnus/gnus-diary.el (gnus-diary): Add :group.
* lisp/gnus/gnus.el (gnus-group-news-1-face): Add :group.
(gnus-group-news-1-empty-face): Ditto.
(gnus-group-news-2-face, gnus-group-news-2-empty-face): Ditto.
(gnus-group-news-3-face, gnus-group-news-3-empty-face): Ditto.
(gnus-group-news-4-face, gnus-group-news-4-empty-face): Ditto.
(gnus-group-news-5-face, gnus-group-news-5-empty-face): Ditto.
(gnus-group-news-6-face, gnus-group-news-6-empty-face): Ditto.
(gnus-group-news-low-face, gnus-group-news-low-empty-face): Ditto.
(gnus-group-mail-1-face, gnus-group-mail-1-empty-face): Ditto.
(gnus-group-mail-2-face, gnus-group-mail-2-empty-face): Ditto.
(gnus-group-mail-3-face, gnus-group-mail-3-empty-face): Ditto.
(gnus-group-mail-low-face, gnus-group-mail-low-empty-face): Ditto.
(gnus-summary-selected-face, gnus-summary-cancelled-face): Ditto.
(gnus-summary-high-ticked-face): Ditto.
(gnus-summary-low-ticked-face): Ditto.
(gnus-summary-normal-ticked-face): Ditto.
(gnus-summary-high-ancient-face): Ditto.
(gnus-summary-low-ancient-face): Ditto.
(gnus-summary-normal-ancient-face): Ditto.
(gnus-summary-high-undownloaded-face): Ditto.
(gnus-summary-low-undownloaded-face): Ditto.
(gnus-summary-normal-undownloaded-face): Ditto.
(gnus-summary-high-unread-face): Ditto.
(gnus-summary-low-unread-face): Ditto.
(gnus-summary-normal-unread-face): Ditto.
(gnus-summary-high-read-face, gnus-summary-low-read-face): Diito
(gnus-summary-normal-read-face, gnus-splash-face): Ditto.
* lisp/gnus/message.el (message-minibuffer-local-map): Add :group.
* lisp/gnus/sieve-manage.el (sieve-manage-log): Add :group.
(sieve-manage-default-user): Diito.
(sieve-manage-server-eol, sieve-manage-client-eol): Ditto.
(sieve-manage-streams, sieve-manage-stream-alist): Ditto.
(sieve-manage-authenticators): Ditto.
(sieve-manage-authenticator-alist): Ditto
(sieve-manage-default-port): Ditto.
* lisp/gnus/sieve-mode.el (sieve-control-commands-face): Add :group.
(sieve-action-commands-face): Ditto.
(sieve-test-commands-face): Ditto.
(sieve-tagged-arguments-face): Ditto.
* lisp/gnus/smime.el (smime): Add :group.
* lisp/gnus/spam-report.el (spam-report): Add :group.
* lisp/gnus/spam.el (spam, spam-face): Add :group.
2005-05-26 15:03:29 +00:00
|
|
|
:version "22.1"
|
|
|
|
:group 'gnus)
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
(defcustom gnus-diary-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n"
|
Remove obsolete leading * from defcustom, defface doc strings.
* lisp/cedet/ede/linux.el, lisp/cedet/ede/project-am.el:
* lisp/cedet/ede/simple.el, lisp/cedet/semantic/bovine/c.el:
* lisp/cedet/semantic/complete.el, lisp/cedet/semantic/db.el:
* lisp/cedet/semantic/decorate/include.el:
* lisp/cedet/semantic/decorate/mode.el, lisp/cedet/semantic/format.el:
* lisp/cedet/semantic/ia.el, lisp/cedet/semantic/idle.el:
* lisp/cedet/semantic/imenu.el, lisp/cedet/semantic/lex-spp.el:
* lisp/cedet/semantic/mru-bookmark.el, lisp/cedet/semantic/sb.el:
* lisp/cedet/srecode/fields.el, lisp/ecomplete.el:
* lisp/gnus/gnus-agent.el, lisp/gnus/gnus-art.el:
* lisp/gnus/gnus-async.el, lisp/gnus/gnus-cache.el:
* lisp/gnus/gnus-cite.el, lisp/gnus/gnus-delay.el:
* lisp/gnus/gnus-diary.el, lisp/gnus/gnus-dup.el:
* lisp/gnus/gnus-fun.el, lisp/gnus/gnus-group.el:
* lisp/gnus/gnus-kill.el, lisp/gnus/gnus-msg.el:
* lisp/gnus/gnus-picon.el, lisp/gnus/gnus-salt.el:
* lisp/gnus/gnus-score.el, lisp/gnus/gnus-start.el:
* lisp/gnus/gnus-sum.el, lisp/gnus/gnus-topic.el:
* lisp/gnus/gnus-util.el, lisp/gnus/gnus-uu.el, lisp/gnus/gnus-win.el:
* lisp/gnus/gnus.el, lisp/gnus/mail-source.el, lisp/gnus/message.el:
* lisp/gnus/mm-url.el, lisp/gnus/mm-uu.el, lisp/gnus/mml.el:
* lisp/gnus/nndiary.el, lisp/gnus/nnir.el, lisp/gnus/nnmail.el:
* lisp/gnus/smiley.el, lisp/gnus/smime.el, lisp/mail/mail-extr.el:
* lisp/mh-e/mh-e.el, lisp/net/mailcap.el, lisp/net/pop3.el:
* lisp/net/starttls.el, lisp/progmodes/cc-vars.el:
* lisp/progmodes/cperl-mode.el, test/manual/cedet/tests/test.el:
Remove obsolete leading * from defcustom, defface doc strings.
2016-06-10 00:13:12 +00:00
|
|
|
"Summary line format for nndiary groups."
|
2004-09-04 13:13:48 +00:00
|
|
|
:type 'string
|
|
|
|
:group 'gnus-diary
|
|
|
|
:group 'gnus-summary-format)
|
|
|
|
|
|
|
|
(defcustom gnus-diary-time-format "%a, %b %e %y, %H:%M"
|
Remove obsolete leading * from defcustom, defface doc strings.
* lisp/cedet/ede/linux.el, lisp/cedet/ede/project-am.el:
* lisp/cedet/ede/simple.el, lisp/cedet/semantic/bovine/c.el:
* lisp/cedet/semantic/complete.el, lisp/cedet/semantic/db.el:
* lisp/cedet/semantic/decorate/include.el:
* lisp/cedet/semantic/decorate/mode.el, lisp/cedet/semantic/format.el:
* lisp/cedet/semantic/ia.el, lisp/cedet/semantic/idle.el:
* lisp/cedet/semantic/imenu.el, lisp/cedet/semantic/lex-spp.el:
* lisp/cedet/semantic/mru-bookmark.el, lisp/cedet/semantic/sb.el:
* lisp/cedet/srecode/fields.el, lisp/ecomplete.el:
* lisp/gnus/gnus-agent.el, lisp/gnus/gnus-art.el:
* lisp/gnus/gnus-async.el, lisp/gnus/gnus-cache.el:
* lisp/gnus/gnus-cite.el, lisp/gnus/gnus-delay.el:
* lisp/gnus/gnus-diary.el, lisp/gnus/gnus-dup.el:
* lisp/gnus/gnus-fun.el, lisp/gnus/gnus-group.el:
* lisp/gnus/gnus-kill.el, lisp/gnus/gnus-msg.el:
* lisp/gnus/gnus-picon.el, lisp/gnus/gnus-salt.el:
* lisp/gnus/gnus-score.el, lisp/gnus/gnus-start.el:
* lisp/gnus/gnus-sum.el, lisp/gnus/gnus-topic.el:
* lisp/gnus/gnus-util.el, lisp/gnus/gnus-uu.el, lisp/gnus/gnus-win.el:
* lisp/gnus/gnus.el, lisp/gnus/mail-source.el, lisp/gnus/message.el:
* lisp/gnus/mm-url.el, lisp/gnus/mm-uu.el, lisp/gnus/mml.el:
* lisp/gnus/nndiary.el, lisp/gnus/nnir.el, lisp/gnus/nnmail.el:
* lisp/gnus/smiley.el, lisp/gnus/smime.el, lisp/mail/mail-extr.el:
* lisp/mh-e/mh-e.el, lisp/net/mailcap.el, lisp/net/pop3.el:
* lisp/net/starttls.el, lisp/progmodes/cc-vars.el:
* lisp/progmodes/cperl-mode.el, test/manual/cedet/tests/test.el:
Remove obsolete leading * from defcustom, defface doc strings.
2016-06-10 00:13:12 +00:00
|
|
|
"Time format to display appointments in nndiary summary buffers.
|
2004-09-04 13:13:48 +00:00
|
|
|
Please refer to `format-time-string' for information on possible values."
|
2021-01-30 19:27:40 +00:00
|
|
|
:type 'string)
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
(defcustom gnus-diary-delay-format-function 'gnus-diary-delay-format-english
|
Remove obsolete leading * from defcustom, defface doc strings.
* lisp/cedet/ede/linux.el, lisp/cedet/ede/project-am.el:
* lisp/cedet/ede/simple.el, lisp/cedet/semantic/bovine/c.el:
* lisp/cedet/semantic/complete.el, lisp/cedet/semantic/db.el:
* lisp/cedet/semantic/decorate/include.el:
* lisp/cedet/semantic/decorate/mode.el, lisp/cedet/semantic/format.el:
* lisp/cedet/semantic/ia.el, lisp/cedet/semantic/idle.el:
* lisp/cedet/semantic/imenu.el, lisp/cedet/semantic/lex-spp.el:
* lisp/cedet/semantic/mru-bookmark.el, lisp/cedet/semantic/sb.el:
* lisp/cedet/srecode/fields.el, lisp/ecomplete.el:
* lisp/gnus/gnus-agent.el, lisp/gnus/gnus-art.el:
* lisp/gnus/gnus-async.el, lisp/gnus/gnus-cache.el:
* lisp/gnus/gnus-cite.el, lisp/gnus/gnus-delay.el:
* lisp/gnus/gnus-diary.el, lisp/gnus/gnus-dup.el:
* lisp/gnus/gnus-fun.el, lisp/gnus/gnus-group.el:
* lisp/gnus/gnus-kill.el, lisp/gnus/gnus-msg.el:
* lisp/gnus/gnus-picon.el, lisp/gnus/gnus-salt.el:
* lisp/gnus/gnus-score.el, lisp/gnus/gnus-start.el:
* lisp/gnus/gnus-sum.el, lisp/gnus/gnus-topic.el:
* lisp/gnus/gnus-util.el, lisp/gnus/gnus-uu.el, lisp/gnus/gnus-win.el:
* lisp/gnus/gnus.el, lisp/gnus/mail-source.el, lisp/gnus/message.el:
* lisp/gnus/mm-url.el, lisp/gnus/mm-uu.el, lisp/gnus/mml.el:
* lisp/gnus/nndiary.el, lisp/gnus/nnir.el, lisp/gnus/nnmail.el:
* lisp/gnus/smiley.el, lisp/gnus/smime.el, lisp/mail/mail-extr.el:
* lisp/mh-e/mh-e.el, lisp/net/mailcap.el, lisp/net/pop3.el:
* lisp/net/starttls.el, lisp/progmodes/cc-vars.el:
* lisp/progmodes/cperl-mode.el, test/manual/cedet/tests/test.el:
Remove obsolete leading * from defcustom, defface doc strings.
2016-06-10 00:13:12 +00:00
|
|
|
"Function called to format a diary delay string.
|
2006-11-03 14:32:22 +00:00
|
|
|
It is passed two arguments. The first one is non-nil if the delay is in
|
2004-09-04 13:13:48 +00:00
|
|
|
the past. The second one is of the form ((NUM . UNIT) ...) where NUM is
|
2019-11-11 18:30:13 +00:00
|
|
|
an integer and UNIT is one of `year' `month' `week' `day' `hour' or `minute'.
|
2004-09-04 13:13:48 +00:00
|
|
|
It should return strings like \"In 2 months, 3 weeks\", \"3 hours,
|
|
|
|
1 minute ago\" and so on.
|
|
|
|
|
|
|
|
There are currently two built-in format functions:
|
|
|
|
`gnus-diary-delay-format-english' (the default)
|
|
|
|
`gnus-diary-delay-format-french'"
|
|
|
|
:type '(choice (const :tag "english" gnus-diary-delay-format-english)
|
|
|
|
(const :tag "french" gnus-diary-delay-format-french)
|
2021-01-30 19:27:40 +00:00
|
|
|
(symbol :tag "other")))
|
2004-09-04 13:13:48 +00:00
|
|
|
|
2022-08-13 15:29:36 +00:00
|
|
|
(defconst gnus-diary-version "0.2-b14"
|
2007-05-10 18:44:49 +00:00
|
|
|
"Current Diary back end version.")
|
2022-08-13 15:29:36 +00:00
|
|
|
(make-obsolete-variable 'gnus-diary-version 'emacs-version "29.1")
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; Compatibility functions ==================================================
|
|
|
|
|
2016-02-13 05:52:47 +00:00
|
|
|
(defun gnus-diary-kill-entire-line ()
|
|
|
|
(beginning-of-line)
|
|
|
|
(let ((kill-whole-line t))
|
|
|
|
(kill-line)))
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; Summary line format ======================================================
|
|
|
|
|
|
|
|
(defun gnus-diary-delay-format-french (past delay)
|
|
|
|
(if (null delay)
|
|
|
|
"maintenant!"
|
|
|
|
;; Keep only a precision of two degrees
|
|
|
|
(and (> (length delay) 1) (setcdr (cdr delay) nil))
|
|
|
|
(concat (if past "il y a " "dans ")
|
|
|
|
(let ((str "")
|
|
|
|
del)
|
|
|
|
(while (setq del (pop delay))
|
|
|
|
(setq str (concat str
|
|
|
|
(int-to-string (car del)) " "
|
|
|
|
(cond ((eq (cdr del) 'year)
|
|
|
|
"an")
|
|
|
|
((eq (cdr del) 'month)
|
|
|
|
"mois")
|
|
|
|
((eq (cdr del) 'week)
|
|
|
|
"semaine")
|
|
|
|
((eq (cdr del) 'day)
|
|
|
|
"jour")
|
|
|
|
((eq (cdr del) 'hour)
|
|
|
|
"heure")
|
|
|
|
((eq (cdr del) 'minute)
|
|
|
|
"minute"))
|
|
|
|
(unless (or (eq (cdr del) 'month)
|
|
|
|
(= (car del) 1))
|
|
|
|
"s")
|
|
|
|
(if delay ", "))))
|
|
|
|
str))))
|
|
|
|
|
|
|
|
|
|
|
|
(defun gnus-diary-delay-format-english (past delay)
|
|
|
|
(if (null delay)
|
|
|
|
"now!"
|
|
|
|
;; Keep only a precision of two degrees
|
|
|
|
(and (> (length delay) 1) (setcdr (cdr delay) nil))
|
|
|
|
(concat (unless past "in ")
|
|
|
|
(let ((str "")
|
|
|
|
del)
|
|
|
|
(while (setq del (pop delay))
|
|
|
|
(setq str (concat str
|
|
|
|
(int-to-string (car del)) " "
|
|
|
|
(symbol-name (cdr del))
|
|
|
|
(and (> (car del) 1) "s")
|
|
|
|
(if delay ", "))))
|
|
|
|
str)
|
|
|
|
(and past " ago"))))
|
|
|
|
|
|
|
|
|
|
|
|
(defun gnus-diary-header-schedule (headers)
|
|
|
|
;; Same as `nndiary-schedule', but given a set of headers HEADERS
|
|
|
|
(mapcar
|
|
|
|
(lambda (elt)
|
|
|
|
(let ((head (cdr (assoc (intern (format "X-Diary-%s" (car elt)))
|
|
|
|
headers))))
|
|
|
|
(when head
|
2004-09-29 06:35:14 +00:00
|
|
|
(nndiary-parse-schedule-value head (cadr elt) (car (cddr elt))))))
|
2004-09-04 13:13:48 +00:00
|
|
|
nndiary-headers))
|
|
|
|
|
|
|
|
;; #### NOTE: Gnus sometimes gives me a HEADER not corresponding to any
|
|
|
|
;; message, with all fields set to nil here. I don't know what it is for, and
|
|
|
|
;; I just ignore it.
|
2006-06-29 22:54:24 +00:00
|
|
|
;;;###autoload
|
2004-09-04 13:13:48 +00:00
|
|
|
(defun gnus-user-format-function-d (header)
|
2011-11-14 23:59:56 +00:00
|
|
|
;; Return an approximate delay string for the next occurrence of this
|
2004-09-04 13:13:48 +00:00
|
|
|
;; message. The delay is given only in the first non zero unit.
|
|
|
|
;; Code partly stolen from article-make-date-line
|
|
|
|
(let* ((extras (mail-header-extra header))
|
|
|
|
(sched (gnus-diary-header-schedule extras))
|
|
|
|
(now (current-time))
|
2019-02-22 21:24:16 +00:00
|
|
|
(occur (nndiary-next-occurrence sched now))
|
Simplify now that float-time etc. are built-in
This was prompted by warnings about calls to now-obsolete functions.
* lisp/calendar/time-date.el (encode-time-value):
Use setq rather than a recursive call, to avoid a warning
about calling this obsolete function.
* lisp/calendar/time-date.el (encode-time-value)
(with-decoded-time-value, time-to-seconds, time-to-number-of-days):
* lisp/erc/erc.el (erc-emacs-time-to-erc-time):
* lisp/net/rcirc.el (rcirc-float-time):
* lisp/org/org-compat.el (org-float-time):
Simplify now that time-add and float-time are now built-in.
* lisp/calendar/time-date.el (time-add, time-subtract, time-less-p):
* lisp/net/newst-backend.el (time-add):
* lisp/org/org.el (time-subtract):
Remove backward-compatibility definitions; they are now built-in.
* lisp/calendar/timeclock.el (timeclock-time-to-seconds)
(timeclock-seconds-to-time):
* lisp/net/rcirc.el (rcirc-float-time):
* lisp/org/org-compat.el (org-float-time):
Now obsolete, since callers can just use float-time and
seconds-to-time. All uses changed.
* lisp/emacs-lisp/ert.el (ert-results-pop-to-timings):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nndiary.el (nndiary-compute-reminders):
* lisp/net/tramp.el (tramp-time-diff):
* lisp/org/org-clock.el (org-clock-timestamps-change):
Prefer the time-subtract builtin to the subtract-time alias.
* lisp/files.el (dir-locals-find-file, dir-locals-read-from-dir):
* test/lisp/character-fold-tests.el (character-fold--speed-test):
Prefer the float-time builtin to the time-to-seconds alias.
* lisp/org/org-agenda.el, lisp/org/org-clock.el, lisp/org/org-list.el:
* lisp/org/org-timer.el, lisp/org/org.el:
Adjust to org-float-time deprecation.
2016-05-08 19:46:00 +00:00
|
|
|
(real-time (time-subtract occur now)))
|
New function time-convert
This replaces the awkward reuse of encode-time to both convert
calendrical timestamps to Lisp timestamps, and to convert Lisp
timestamps to other forms. Now, encode-time does just the
former and the new function does just the latter.
The new function builds on a suggestion by Lars Ingebrigtsen in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00801.html
and refined by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00803.html
* doc/lispref/os.texi (Time of Day, Time Conversion):
* doc/misc/emacs-mime.texi (time-date):
* etc/NEWS: Update documentation.
* lisp/calendar/cal-dst.el (calendar-next-time-zone-transition):
* lisp/calendar/time-date.el (seconds-to-time, days-to-time):
* lisp/calendar/timeclock.el (timeclock-seconds-to-time):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-add-item):
* lisp/emacs-lisp/cl-extra.el (cl--random-time):
* lisp/emacs-lisp/timer.el (timer--time-setter)
(timer-next-integral-multiple-of-time):
* lisp/find-lisp.el (find-lisp-format-time):
* lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
* lisp/gnus/gnus-group.el (gnus-group-set-timestamp):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-show-org-agenda):
* lisp/gnus/nnrss.el (nnrss-normalize-date):
* lisp/gnus/nnspool.el (nnspool-request-newgroups):
* lisp/net/ntlm.el (ntlm-compute-timestamp):
* lisp/net/pop3.el (pop3-uidl-dele):
* lisp/obsolete/vc-arch.el (vc-arch-add-tagline):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-clock-in)
(org-clock-out, org-clock-sum):
* lisp/org/org-id.el (org-id-uuid, org-id-time-to-b36):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cc-cmds.el (c-progress-init)
(c-progress-update):
* lisp/progmodes/cperl-mode.el (cperl-time-fontification):
* lisp/progmodes/flymake.el (flymake--schedule-timer-maybe):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
* lisp/tar-mode.el (tar-octal-time):
* lisp/time.el (emacs-uptime):
* lisp/url/url-auth.el (url-digest-auth-make-cnonce):
* lisp/url/url-util.el (url-lazy-message):
* lisp/vc/vc-cvs.el (vc-cvs-parse-entry):
* lisp/vc/vc-hg.el (vc-hg-state-fast):
* lisp/xt-mouse.el (xterm-mouse-event):
* test/lisp/emacs-lisp/timer-tests.el:
(timer-next-integral-multiple-of-time-2):
Use time-convert, not encode-time.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Don’t use now-removed FORM argument for encode-time.
It wasn’t crucial anyway.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add time-convert.
* lisp/emacs-lisp/elint.el (elint-unknown-builtin-args):
Update encode-time signature to match current arg set.
* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
Use timer-convert with t rather than doing it by hand.
* src/timefns.c (time_hz_ticks, time_form_stamp, lisp_time_form_stamp):
Remove; no longer needed.
(decode_lisp_time): Rturn the form instead of having a *PFORM arg.
All uses changed.
(time_arith): Just return TICKS if HZ is 1.
(Fencode_time): Remove argument FORM. All callers changed.
Do not attempt to encode time values; just encode
decoded (calendrical) times.
Unless CURRENT_TIME_LIST, just return VALUE since HZ is 1.
(Ftime_convert): New function, which does the time value
conversion that bleeding-edge encode-time formerly did.
Return TIME if it is easy to see that it is already
of the correct form.
(Fcurrent_time): Mention in doc that the form is planned to change.
* test/src/timefns-tests.el (decode-then-encode-time):
Don’t use (encode-time nil).
2019-08-06 00:38:52 +00:00
|
|
|
(let* ((sec (time-convert real-time 'integer))
|
2019-02-22 21:24:16 +00:00
|
|
|
(past (< sec 0))
|
|
|
|
delay)
|
|
|
|
(and past (setq sec (- sec)))
|
|
|
|
(unless (zerop sec)
|
|
|
|
;; This is a bit convoluted, but basically we go through the time
|
|
|
|
;; units for years, weeks, etc, and divide things to see whether
|
|
|
|
;; that results in positive answers.
|
|
|
|
(let ((units `((year . ,(round (* 365.25 24 3600)))
|
|
|
|
(month . ,(* 31 24 3600))
|
|
|
|
(week . ,(* 7 24 3600))
|
|
|
|
(day . ,(* 24 3600))
|
|
|
|
(hour . 3600)
|
|
|
|
(minute . 60)))
|
|
|
|
unit num)
|
|
|
|
(while (setq unit (pop units))
|
|
|
|
(unless (zerop (setq num (floor sec (cdr unit))))
|
|
|
|
(setq delay (append delay `((,num . ,(car unit))))))
|
|
|
|
(setq sec (mod sec (cdr unit))))))
|
|
|
|
(funcall gnus-diary-delay-format-function past delay))))
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
;; #### NOTE: Gnus sometimes gives me a HEADER not corresponding to any
|
|
|
|
;; message, with all fields set to nil here. I don't know what it is for, and
|
|
|
|
;; I just ignore it.
|
2006-06-29 22:54:24 +00:00
|
|
|
;;;###autoload
|
2004-09-04 13:13:48 +00:00
|
|
|
(defun gnus-user-format-function-D (header)
|
2010-01-14 18:37:23 +00:00
|
|
|
;; Returns a formatted time string for the next occurrence of this message.
|
2004-09-04 13:13:48 +00:00
|
|
|
(let* ((extras (mail-header-extra header))
|
|
|
|
(sched (gnus-diary-header-schedule extras))
|
2017-05-04 01:21:20 +00:00
|
|
|
(occur (nndiary-next-occurrence sched (current-time))))
|
2004-09-04 13:13:48 +00:00
|
|
|
(format-time-string gnus-diary-time-format occur)))
|
|
|
|
|
|
|
|
|
|
|
|
;; Article sorting functions ================================================
|
|
|
|
|
|
|
|
(defun gnus-article-sort-by-schedule (h1 h2)
|
|
|
|
(let* ((now (current-time))
|
|
|
|
(e1 (mail-header-extra h1))
|
|
|
|
(e2 (mail-header-extra h2))
|
|
|
|
(s1 (gnus-diary-header-schedule e1))
|
|
|
|
(s2 (gnus-diary-header-schedule e2))
|
2017-05-04 01:21:20 +00:00
|
|
|
(o1 (nndiary-next-occurrence s1 now))
|
|
|
|
(o2 (nndiary-next-occurrence s2 now)))
|
2004-09-04 13:13:48 +00:00
|
|
|
(if (and (= (car o1) (car o2)) (= (cadr o1) (cadr o2)))
|
|
|
|
(< (mail-header-number h1) (mail-header-number h2))
|
|
|
|
(time-less-p o1 o2))))
|
|
|
|
|
|
|
|
|
|
|
|
(defun gnus-thread-sort-by-schedule (h1 h2)
|
|
|
|
(gnus-article-sort-by-schedule (gnus-thread-header h1)
|
|
|
|
(gnus-thread-header h2)))
|
|
|
|
|
|
|
|
(defun gnus-summary-sort-by-schedule (&optional reverse)
|
2007-06-06 23:51:11 +00:00
|
|
|
"Sort nndiary summary buffers by schedule of appointments.
|
2004-09-04 13:13:48 +00:00
|
|
|
Optional prefix (or REVERSE argument) means sort in reverse order."
|
2021-02-14 13:14:48 +00:00
|
|
|
(interactive "P" gnus-summary-mode)
|
2004-09-04 13:13:48 +00:00
|
|
|
(gnus-summary-sort 'schedule reverse))
|
|
|
|
|
|
|
|
(defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning.
|
|
|
|
(add-hook 'gnus-summary-menu-hook
|
|
|
|
(lambda ()
|
|
|
|
(easy-menu-add-item gnus-summary-misc-menu
|
|
|
|
'("Sort")
|
|
|
|
["Sort by schedule"
|
|
|
|
gnus-summary-sort-by-schedule
|
|
|
|
(eq (car (gnus-find-method-for-group
|
|
|
|
gnus-newsgroup-name))
|
|
|
|
'nndiary)]
|
|
|
|
"Sort by number")))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Group parameters autosetting =============================================
|
|
|
|
|
|
|
|
(defun gnus-diary-update-group-parameters (group)
|
|
|
|
;; Ensure that nndiary groups have convenient group parameters:
|
|
|
|
;; - a posting style containing X-Diary headers
|
|
|
|
;; - a nice summary line format
|
|
|
|
;; - NNDiary specific sorting by schedule functions
|
|
|
|
;; In general, try not to mess with what the user might have modified.
|
2007-10-28 09:18:39 +00:00
|
|
|
|
|
|
|
;; Posting style:
|
|
|
|
(let ((posting-style (gnus-group-get-parameter group 'posting-style t))
|
|
|
|
(headers nndiary-headers)
|
|
|
|
header)
|
|
|
|
(while headers
|
|
|
|
(setq header (format "X-Diary-%s" (caar headers))
|
|
|
|
headers (cdr headers))
|
|
|
|
(unless (assoc header posting-style)
|
|
|
|
(setq posting-style (append posting-style (list (list header "*"))))))
|
|
|
|
(gnus-group-set-parameter group 'posting-style posting-style))
|
|
|
|
;; Summary line format:
|
|
|
|
(unless (gnus-group-get-parameter group 'gnus-summary-line-format t)
|
|
|
|
(gnus-group-set-parameter group 'gnus-summary-line-format
|
|
|
|
`(,gnus-diary-summary-line-format)))
|
|
|
|
;; Sorting by schedule:
|
|
|
|
(unless (gnus-group-get-parameter group 'gnus-article-sort-functions)
|
|
|
|
(gnus-group-set-parameter group 'gnus-article-sort-functions
|
|
|
|
'((append gnus-article-sort-functions
|
|
|
|
(list
|
|
|
|
'gnus-article-sort-by-schedule)))))
|
|
|
|
(unless (gnus-group-get-parameter group 'gnus-thread-sort-functions)
|
|
|
|
(gnus-group-set-parameter group 'gnus-thread-sort-functions
|
|
|
|
'((append gnus-thread-sort-functions
|
|
|
|
(list
|
|
|
|
'gnus-thread-sort-by-schedule))))))
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
;; Called when a group is subscribed. This is needed because groups created
|
2007-05-10 18:44:49 +00:00
|
|
|
;; because of mail splitting are *not* created with the back end function.
|
2012-11-13 03:11:46 +00:00
|
|
|
;; Thus, `nndiary-request-create-group-functions' is inoperative.
|
2004-09-04 13:13:48 +00:00
|
|
|
(defun gnus-diary-maybe-update-group-parameters (group)
|
|
|
|
(when (eq (car (gnus-find-method-for-group group)) 'nndiary)
|
|
|
|
(gnus-diary-update-group-parameters group)))
|
|
|
|
|
2012-11-13 03:11:46 +00:00
|
|
|
(add-hook 'nndiary-request-create-group-functions
|
2021-01-30 05:35:24 +00:00
|
|
|
#'gnus-diary-update-group-parameters)
|
2012-11-13 03:11:46 +00:00
|
|
|
;; Now that we have `gnus-subscribe-newsgroup-functions', this is not needed
|
2004-09-04 13:13:48 +00:00
|
|
|
;; anymore. Maybe I should remove this completely.
|
2012-11-13 03:11:46 +00:00
|
|
|
(add-hook 'nndiary-request-update-info-functions
|
2021-01-30 05:35:24 +00:00
|
|
|
#'gnus-diary-update-group-parameters)
|
2012-11-13 03:11:46 +00:00
|
|
|
(add-hook 'gnus-subscribe-newsgroup-functions
|
2021-01-30 05:35:24 +00:00
|
|
|
#'gnus-diary-maybe-update-group-parameters)
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; Diary Message Checking ===================================================
|
|
|
|
|
|
|
|
(defvar gnus-diary-header-value-history nil
|
|
|
|
;; History variable for header value prompting
|
|
|
|
)
|
|
|
|
|
|
|
|
(defun gnus-diary-narrow-to-headers ()
|
|
|
|
"Narrow the current buffer to the header part.
|
|
|
|
Point is left at the beginning of the region.
|
|
|
|
The buffer is assumed to contain a message, but the format is unknown."
|
|
|
|
(cond ((eq major-mode 'message-mode)
|
|
|
|
(message-narrow-to-headers))
|
|
|
|
(t
|
|
|
|
(goto-char (point-min))
|
|
|
|
(when (search-forward "\n\n" nil t)
|
|
|
|
(narrow-to-region (point-min) (- (point) 1))
|
|
|
|
(goto-char (point-min))))
|
|
|
|
))
|
|
|
|
|
|
|
|
(defun gnus-diary-add-header (str)
|
|
|
|
"Add a header to the current buffer.
|
|
|
|
The buffer is assumed to contain a message, but the format is unknown."
|
|
|
|
(cond ((eq major-mode 'message-mode)
|
|
|
|
(message-add-header str))
|
|
|
|
(t
|
|
|
|
(save-restriction
|
|
|
|
(gnus-diary-narrow-to-headers)
|
|
|
|
(goto-char (point-max))
|
|
|
|
(if (string-match "\n$" str)
|
|
|
|
(insert str)
|
|
|
|
(insert str ?\n))))
|
|
|
|
))
|
|
|
|
|
|
|
|
(defun gnus-diary-check-message (arg)
|
|
|
|
"Ensure that the current message is a valid for NNDiary.
|
|
|
|
This function checks that all NNDiary required headers are present and
|
|
|
|
valid, and prompts for values / correction otherwise.
|
|
|
|
|
|
|
|
If ARG (or prefix) is non-nil, force prompting for all fields."
|
2021-02-14 13:14:48 +00:00
|
|
|
(interactive "P" gnus-summary-mode)
|
2004-09-04 13:13:48 +00:00
|
|
|
(save-excursion
|
|
|
|
(mapcar
|
|
|
|
(lambda (head)
|
|
|
|
(let ((header (concat "X-Diary-" (car head)))
|
|
|
|
(ask arg)
|
|
|
|
value invalid)
|
|
|
|
;; First, try to find the header, and checks for validity:
|
|
|
|
(save-restriction
|
|
|
|
(gnus-diary-narrow-to-headers)
|
|
|
|
(when (re-search-forward (concat "^" header ":") nil t)
|
|
|
|
(unless (eq (char-after) ? )
|
|
|
|
(insert " "))
|
2022-08-23 02:54:57 +00:00
|
|
|
(setq value (buffer-substring (point) (line-end-position)))
|
2004-09-04 13:13:48 +00:00
|
|
|
(and (string-match "[ \t]*\\([^ \t]+\\)[ \t]*" value)
|
|
|
|
(setq value (match-string 1 value)))
|
|
|
|
(condition-case ()
|
|
|
|
(nndiary-parse-schedule-value value
|
|
|
|
(nth 1 head) (nth 2 head))
|
2009-09-18 07:39:56 +00:00
|
|
|
(error
|
2004-09-04 13:13:48 +00:00
|
|
|
(setq invalid t)))
|
|
|
|
;; #### NOTE: this (along with the `gnus-diary-add-header'
|
|
|
|
;; function) could be rewritten in a better way, in particular
|
|
|
|
;; not to blindly remove an already present header and reinsert
|
|
|
|
;; it somewhere else afterwards.
|
|
|
|
(when (or ask invalid)
|
|
|
|
(gnus-diary-kill-entire-line))
|
|
|
|
))
|
|
|
|
;; Now, loop until a valid value is provided:
|
|
|
|
(while (or ask (not value) invalid)
|
|
|
|
(let ((prompt (concat (and invalid
|
|
|
|
(prog1 "(current value invalid) "
|
|
|
|
(beep)))
|
|
|
|
header ": ")))
|
|
|
|
(setq value
|
|
|
|
(if (listp (nth 1 head))
|
2021-01-30 05:35:24 +00:00
|
|
|
(gnus-completing-read prompt (cons "*" (mapcar #'car (nth 1 head)))
|
Merge changes made in Gnus trunk.
nndraft.el (nndraft-request-expire-articles): Use the group name instead if "nndraft".
gnus.texi (Using IMAP): Remove the @acronyms from the headings.
nnregistry.el: Added.
nnimap.el (nnimap-insert-partial-structure): Be way more permissive when interpreting the structures.
GNUS-NEWS: Minor error in GNUS-NEWS - password-cache.el.
nnimap.el (nnimap-request-accept-article): Add \r\n to the lines to make this work with Cyrus.
gnus-registry.el: Don't prompt on load, which makes it impossible to build Gnus.
gnus-gravatar.el: Add gnus-gravatar-properties.
gnus-agent.el, gnus-art.el, gnus-bookmark.el, gnus-dired.el, gnus-group.el,\
gnus-int.el, gnus-msg.el, gnus-registry.el, gnus-score.el, gnus-srvr.el,\
gnus-sum.el, gnus-topic.el, gnus-util.el, gnus.el, mm-decode.el, mm-util.el,\
mm-view.el, mml-smime.el, mml.el, nnmairix.el, nnrss.el, smime.el:\
Introduce gnus-completing-read.
gnus-util.el: Make completing-read function configurable.
gnus-util.el: Add requires and fix history for iswitchb.
webmail.el: Remove netscape/my-deja, since they no longer exist.
gnus.el (gnus-local-domain): Declare variable obsolete.
nnimap.el (nnimap-insert-partial-structure): Get the type from the correct slot, too.
pop3.el (pop3-send-streaming-command, pop3-stream-length): New variable.
nnimap.el (nnimap-open-connection): Revert the auto-network->starttls code.
nnimap.el (nnimap-request-set-mark): Erase the buffer before issuing commands.
nnimap.el (nnimap-split-rule): Mark as obsolete.
gnus-sum.el (gnus-valid-move-group-p): Make sure that `group' is a symbol.
nnimap.el (nnimap-split-incoming-mail): Allow `default' as nnimap-split-methods value.
nnimap.el (nnimap-request-article): Downcase the NILs so that they are nil.
nndoc.el (nndoc-retrieve-groups): New function.
gnus.texi: Fix Gravatar documentation.
2010-09-30 08:39:23 +00:00
|
|
|
t value
|
|
|
|
'gnus-diary-header-value-history)
|
2004-09-04 13:13:48 +00:00
|
|
|
(read-string prompt value
|
Merge changes made in Gnus trunk.
nndraft.el (nndraft-request-expire-articles): Use the group name instead if "nndraft".
gnus.texi (Using IMAP): Remove the @acronyms from the headings.
nnregistry.el: Added.
nnimap.el (nnimap-insert-partial-structure): Be way more permissive when interpreting the structures.
GNUS-NEWS: Minor error in GNUS-NEWS - password-cache.el.
nnimap.el (nnimap-request-accept-article): Add \r\n to the lines to make this work with Cyrus.
gnus-registry.el: Don't prompt on load, which makes it impossible to build Gnus.
gnus-gravatar.el: Add gnus-gravatar-properties.
gnus-agent.el, gnus-art.el, gnus-bookmark.el, gnus-dired.el, gnus-group.el,\
gnus-int.el, gnus-msg.el, gnus-registry.el, gnus-score.el, gnus-srvr.el,\
gnus-sum.el, gnus-topic.el, gnus-util.el, gnus.el, mm-decode.el, mm-util.el,\
mm-view.el, mml-smime.el, mml.el, nnmairix.el, nnrss.el, smime.el:\
Introduce gnus-completing-read.
gnus-util.el: Make completing-read function configurable.
gnus-util.el: Add requires and fix history for iswitchb.
webmail.el: Remove netscape/my-deja, since they no longer exist.
gnus.el (gnus-local-domain): Declare variable obsolete.
nnimap.el (nnimap-insert-partial-structure): Get the type from the correct slot, too.
pop3.el (pop3-send-streaming-command, pop3-stream-length): New variable.
nnimap.el (nnimap-open-connection): Revert the auto-network->starttls code.
nnimap.el (nnimap-request-set-mark): Erase the buffer before issuing commands.
nnimap.el (nnimap-split-rule): Mark as obsolete.
gnus-sum.el (gnus-valid-move-group-p): Make sure that `group' is a symbol.
nnimap.el (nnimap-split-incoming-mail): Allow `default' as nnimap-split-methods value.
nnimap.el (nnimap-request-article): Downcase the NILs so that they are nil.
nndoc.el (nndoc-retrieve-groups): New function.
gnus.texi: Fix Gravatar documentation.
2010-09-30 08:39:23 +00:00
|
|
|
'gnus-diary-header-value-history))))
|
2004-09-04 13:13:48 +00:00
|
|
|
(setq ask nil)
|
|
|
|
(setq invalid nil)
|
|
|
|
(condition-case ()
|
|
|
|
(nndiary-parse-schedule-value value
|
|
|
|
(nth 1 head) (nth 2 head))
|
2009-09-18 07:39:56 +00:00
|
|
|
(error
|
2004-09-04 13:13:48 +00:00
|
|
|
(setq invalid t))))
|
|
|
|
(gnus-diary-add-header (concat header ": " value))
|
|
|
|
))
|
|
|
|
nndiary-headers)
|
|
|
|
))
|
|
|
|
|
2012-11-13 03:11:46 +00:00
|
|
|
(add-hook 'nndiary-request-accept-article-functions
|
2004-09-04 13:13:48 +00:00
|
|
|
(lambda () (gnus-diary-check-message nil)))
|
|
|
|
|
2008-04-21 07:13:33 +00:00
|
|
|
(define-key message-mode-map "\C-c\C-fd" 'gnus-diary-check-message)
|
|
|
|
(define-key gnus-article-edit-mode-map "\C-c\C-fd" 'gnus-diary-check-message)
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
;; The end ==================================================================
|
|
|
|
|
|
|
|
(defun gnus-diary-version ()
|
2007-05-10 18:44:49 +00:00
|
|
|
"Current Diary back end version."
|
2022-08-13 15:29:36 +00:00
|
|
|
(declare (obsolete emacs-version "29.1"))
|
2004-09-04 13:13:48 +00:00
|
|
|
(interactive)
|
2022-08-13 15:29:36 +00:00
|
|
|
(message "NNDiary version %s" gnus-diary-version))
|
2004-09-04 13:13:48 +00:00
|
|
|
|
|
|
|
(provide 'gnus-diary)
|
|
|
|
|
|
|
|
;;; gnus-diary.el ends here
|