From: Glenn Morris <rgm@gnu.org>
To: Sam Steingold <sds@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: /srv/bzr/emacs/trunk r107697: calendar/calendar.el (calendar-exit): Use `quit-windows-on' instead of
Date: Thu, 29 Mar 2012 13:50:07 -0400 [thread overview]
Message-ID: <g2hax7wb3k.fsf@fencepost.gnu.org> (raw)
In-Reply-To: E1SDGAB-00054K-Oq@vcs.savannah.gnu.org
Hi,
> revno: 107697
> committer: Sam Steingold <sds@gnu.org>
> branch nick: trunk
> timestamp: Thu 2012-03-29 10:00:00 -0400
> message:
> calendar/calendar.el (calendar-exit): Use `quit-windows-on' instead of
> the broken adhockery which does not prevent calendar buffers from
> being displayed at random after exit.
> (calendar-window-list, calendar-hide-window): Remove the broken adhockery.
This is an unexpected change at this stage in the release process. [1]
Could you explain exactly what it is for? My immediate inclination is to
leave it for after 24.1. (I don't disagree about there being a lot of
adhockery, but it is long-standing.)
[1] http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00318.html
> modified:
> lisp/ChangeLog
> lisp/calendar/calendar.el
> === modified file 'lisp/ChangeLog'
> --- a/lisp/ChangeLog 2012-03-28 19:30:12 +0000
> +++ b/lisp/ChangeLog 2012-03-29 14:00:00 +0000
> @@ -1,3 +1,11 @@
> +2012-03-28 Sam Steingold <sds@gnu.org>
> +
> + * calendar/calendar.el (calendar-exit): Use `quit-windows-on'
> + instead of the broken adhockery which does not prevent calendar
> + buffers from being displayed at random after exit.
> + (calendar-window-list, calendar-hide-window): Remove the broken
> + adhockery.
> +
> 2012-03-28 Glenn Morris <rgm@gnu.org>
>
> * replace.el (query-replace-map): Doc fix.
>
> === modified file 'lisp/calendar/calendar.el'
> --- a/lisp/calendar/calendar.el 2012-03-16 01:10:46 +0000
> +++ b/lisp/calendar/calendar.el 2012-03-29 14:00:00 +0000
> @@ -1793,19 +1793,6 @@
> ?\s (- calendar-right-margin (1- start))))))
> (force-mode-line-update))))
>
> -(defun calendar-window-list ()
> - "List of all calendar-related windows."
> - (let ((calendar-buffers (calendar-buffer-list))
> - list)
> - ;; Using 0 rather than t for last argument - see bug#2199.
> - ;; This is only used with calendar-hide-window, which ignores
> - ;; iconified frames anyway, so could use 'visible rather than 0.
> - (walk-windows (lambda (w)
> - (if (memq (window-buffer w) calendar-buffers)
> - (push w list)))
> - nil 0)
> - list))
> -
> (defun calendar-buffer-list ()
> "List of all calendar-related buffers (as buffers, not strings)."
> (let (buffs)
> @@ -1817,41 +1804,29 @@
> (push b buffs)))
> buffs))
>
> -(defun calendar-exit ()
> +(defun calendar-exit (&optional kill)
> "Get out of the calendar window and hide it and related buffers."
> - (interactive)
> - (let ((diary-buffer (get-file-buffer diary-file)))
> - (if (or (not diary-buffer)
> - (not (buffer-modified-p diary-buffer))
> - (yes-or-no-p
> - "Diary modified; do you really want to exit the calendar? "))
> - ;; Need to do this multiple times because one time can replace some
> - ;; calendar-related buffers with other calendar-related buffers.
> - (mapc (lambda (x)
> - (mapc 'calendar-hide-window (calendar-window-list)))
> - (calendar-window-list)))))
> + (interactive "P")
> + (let ((diary-buffer (get-file-buffer diary-file))
> + (calendar-buffers (calendar-buffer-list)))
> + (when (or (not diary-buffer)
> + (not (buffer-modified-p diary-buffer))
> + (yes-or-no-p
> + "Diary modified; do you really want to exit the calendar? "))
> + (if (and calendar-setup (display-multi-frame-p))
> + ;; FIXME: replace this cruft with the `quit-restore' window property
> + (dolist (w (window-list-1 nil nil t))
> + (if (and (memq (window-buffer w) calendar-buffers)
> + (window-dedicated-p w))
> + (if calendar-remove-frame-by-deleting
> + (delete-frame (window-frame w))
> + (iconify-frame (window-frame w)))
> + (quit-window kill w)))
> + (dolist (b calendar-buffers)
> + (quit-windows-on b kill))))))
>
> (define-obsolete-function-alias 'exit-calendar 'calendar-exit "23.1")
>
> -(defun calendar-hide-window (window)
> - "Hide WINDOW if it is calendar-related."
> - (let ((buffer (if (window-live-p window) (window-buffer window))))
> - (if (memq buffer (calendar-buffer-list))
> - (cond
> - ((and (display-multi-frame-p)
> - (eq 'icon (cdr (assoc 'visibility
> - (frame-parameters
> - (window-frame window))))))
> - nil)
> - ((and (display-multi-frame-p) (window-dedicated-p window))
> - (if calendar-remove-frame-by-deleting
> - (delete-frame (window-frame window))
> - (iconify-frame (window-frame window))))
> - ((not (and (select-window window) (one-window-p window)))
> - (delete-window window))
> - (t (set-buffer buffer)
> - (bury-buffer))))))
> -
> (defun calendar-current-date (&optional offset)
> "Return the current date in a list (month day year).
> Optional integer OFFSET is a number of days from the current date."
next parent reply other threads:[~2012-03-29 17:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1SDGAB-00054K-Oq@vcs.savannah.gnu.org>
2012-03-29 17:50 ` Glenn Morris [this message]
2012-03-29 18:10 ` /srv/bzr/emacs/trunk r107697: calendar/calendar.el (calendar-exit): Use `quit-windows-on' instead of Sam Steingold
2012-03-30 4:03 ` Glenn Morris
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=g2hax7wb3k.fsf@fencepost.gnu.org \
--to=rgm@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=sds@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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.