unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Stephen Berman <stephen.berman@gmx.net>
Cc: emacs-devel@gnu.org
Subject: Re: New version of todo-mode.el (announcement + user guide)
Date: Sat, 15 Jun 2013 20:44:03 -0400	[thread overview]
Message-ID: <jwv61xeew2f.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87y5abbkov.fsf@rosalinde.fritz.box> (Stephen Berman's message of "Sat, 15 Jun 2013 14:52:16 +0200")

> restore the proper display.  But what happens between widening and
> re-narrowing is different in the two situations (indicated below by the

You could unify the two with something like

(defvar diary-goto-entry-function
    (lambda (pos)
      (if (number-or-marker-p pos) (goto-char pos))
        (goto-char (point-min))
        (when (re-search-forward (format "%s.*\\(%s\\)"
                                         (regexp-quote (car locator))
                                         (regexp-quote (nth 1 locator)))
                                 nil t)
          (goto-char (match-beginning 1))))
  "Function called to jump to a diary entry.
Called with one argument which can be either a simple buffer position,
or a description of the form (FOO BAR) where FOO is some leading text
and BAR is the actual text of the entry.")

(defun diary-goto-entry (button)
  "Jump to the diary entry for the BUTTON at point."
  (let* ((locator (button-get button 'locator))
         (marker (car locator))
         (file (nth 1 locator))
         (place (cond
                 ;; If marker pointing to diary location is valid, use that.
                 ((and marker (marker-buffer marker))
                  (cons (marker-buffer marker) marker))
                 ;; Marker is invalid (eg buffer has been killed).
                 ((and file (file-exists-p file))
                  (cons (find-file-noselect file) (cddr locator)))
                 (t (message "Unable to locate this diary entry") nil))))
    (when place
      (pop-to-buffer (car place))
      (funcall diary-goto-entry-function (cdr place)))))

> Actually, I don't see why the first situation, using a valid marker, is
> needed.

I don't have any opinion on that part because I don't use this part of
the diary.


        Stefan



  reply	other threads:[~2013-06-16  0:44 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09 23:31 New version of todo-mode.el (announcement + user guide) Stephen Berman
2013-06-10 13:24 ` Bastien
2013-06-10 14:35   ` Stephen Berman
2013-06-10 14:49     ` Bastien
2013-06-10 20:51       ` New version of todo-mode.el (code) Stephen Berman
2013-08-30 18:31         ` Jambunathan K
2013-09-08 21:09           ` Stephen Berman
2013-06-10 14:52     ` New version of todo-mode.el (announcement + user guide) Óscar Fuentes
2013-06-10 20:52       ` Stephen Berman
2013-06-11  0:20         ` Stefan Monnier
2013-06-11 18:36           ` Stephen Berman
2013-06-11 21:48             ` Stefan Monnier
2013-06-12 21:37               ` Stephen Berman
2013-06-13  1:06                 ` Stefan Monnier
2013-06-13 20:53                   ` Stephen Berman
2013-06-12 17:28             ` Glenn Morris
2013-06-12 21:26               ` Stefan Monnier
2013-06-12 21:37               ` Stephen Berman
2013-06-13  1:18                 ` Stefan Monnier
2013-06-13 20:53                   ` Stephen Berman
2013-06-14  0:21                     ` Stefan Monnier
2013-06-14 21:37                       ` Stephen Berman
2013-06-15  0:40                         ` Glenn Morris
2013-06-15  1:49                         ` Stefan Monnier
2013-06-15 12:52                           ` Stephen Berman
2013-06-16  0:44                             ` Stefan Monnier [this message]
2013-06-16 22:52                               ` Stephen Berman
2013-06-17  0:37                                 ` Stefan Monnier
2013-06-17 19:50                                 ` Glenn Morris
2013-06-17 22:33                                   ` Stephen Berman
2013-06-12 18:30             ` Wolfgang Jenkner
2013-06-12 21:38               ` Stephen Berman
2013-06-13  1:24                 ` Wolfgang Jenkner
2013-06-13 20:54                   ` Stephen Berman
2013-06-13 10:59 ` Vitalie Spinu
2013-06-13 20:54   ` Stephen Berman
2013-08-31  3:55 ` Jambunathan K

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.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=jwv61xeew2f.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=stephen.berman@gmx.net \
    /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.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).