emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Kyle Meyer <kyle@kyleam.com>
To: Alan Schmitt <alan.schmitt@polytechnique.org>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: org-agenda for a day different than today
Date: Tue, 16 Feb 2021 23:01:03 -0500	[thread overview]
Message-ID: <87pn0ztkao.fsf@kyleam.com> (raw)
In-Reply-To: <87pn10t83u.fsf@m4x.org>

Alan Schmitt writes:

> I’ve been reading the documentation around org-agenda, and I cannot find
> a way to call it to get an agenda for a day different than today. I’ve
> found org-agenda-goto-date, but I don’t know how to call it from
> emacs-lisp with the target date.
>
> By the way, I’m surprised by the code of this function, as it is defined
> as:
>
> (defun org-agenda-goto-date (span)
>   "Jump to DATE in agenda."
>   …
> )
>
> and "span" is never mentioned in the function. Am I missing something?

That does look wrong.  Among other changes, 93fcfe4d3 (org-agenda.el:
Fix org-agenda-goto-date' again, 2012-08-30) switched the DATE argument
to SPAN, moving the org-read-date call out of the interactive form.
From that commit alone, I don't have a good guess at why and am
wondering if the above change was an unfinished thought that came along
with the other changes.

Here are two threads from around that time that may be related, though I
haven't reviewed either of them:

 https://orgmode.org/list/BLU0-SMTP912FC379760EE431D3D68EBBBC0@phx.gbl/T/#u
 https://orgmode.org/list/BLU0-SMTP950E9387B34FA390C4FD9CBBBD0@phx.gbl/T/#u

Moving org-read-date back to the interactive form would allow lisp
callers to pass in the date, though perhaps it'd bring back some
misbehavior discussed in the above threads.

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 9b2009fdb..aef642037 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -8238,13 +8238,13 @@ (defun org-agenda-manipulate-query (char)
 (defun org-add-to-string (var string)
   (set var (concat (symbol-value var) string)))
 
-(defun org-agenda-goto-date (span)
+(defun org-agenda-goto-date (date)
   "Jump to DATE in agenda."
-  (interactive "P")
-  (let* ((org-read-date-prefer-future
-	  (eval org-agenda-jump-prefer-future))
-	 (date (org-read-date))
-	 (day (time-to-days (org-time-string-to-time date)))
+  (interactive
+   (list
+    (let ((org-read-date-prefer-future org-agenda-jump-prefer-future))
+      (org-read-date))))
+  (let* ((day (time-to-days (org-time-string-to-time date)))
 	 (org-agenda-sticky-orig org-agenda-sticky)
 	 (org-agenda-buffer-tmp-name (buffer-name))
 	 (args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))


  reply	other threads:[~2021-02-17  4:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-16 14:12 org-agenda for a day different than today Alan Schmitt
2021-02-17  4:01 ` Kyle Meyer [this message]
2021-02-17  8:38   ` Alan Schmitt
2021-02-18  5:32     ` Kyle Meyer
2021-02-18 16:41       ` Alan Schmitt
2021-02-21  6:23         ` Kyle Meyer
2021-02-21 15:42           ` Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pn0ztkao.fsf@kyleam.com \
    --to=kyle@kyleam.com \
    --cc=alan.schmitt@polytechnique.org \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).