From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.devel 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 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1333044349 6076 80.91.229.3 (29 Mar 2012 18:05:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 29 Mar 2012 18:05:49 +0000 (UTC) Cc: emacs-devel@gnu.org To: Sam Steingold Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 29 20:05:47 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SDJjH-0002p9-Ir for ged-emacs-devel@m.gmane.org; Thu, 29 Mar 2012 20:05:47 +0200 Original-Received: from localhost ([::1]:35322 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SDJjG-0006PX-SY for ged-emacs-devel@m.gmane.org; Thu, 29 Mar 2012 14:05:46 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:49031) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SDJjA-0006Ko-FZ for emacs-devel@gnu.org; Thu, 29 Mar 2012 14:05:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SDJix-0006es-PK for emacs-devel@gnu.org; Thu, 29 Mar 2012 14:05:40 -0400 Original-Received: from fencepost.gnu.org ([208.118.235.10]:56105) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SDJix-0006XA-HN for emacs-devel@gnu.org; Thu, 29 Mar 2012 14:05:27 -0400 Original-Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1SDJU7-0005GE-Ix; Thu, 29 Mar 2012 13:50:07 -0400 X-Spook: encryption DES Armani lock picking morse import Albanian X-Ran: &yN>Du]Z>^v;K*GznWjo'GYg~<$U66u,'#X!ZCI,R>~&SrL/`D%wmrF^FNpZnnMm0GXsZ\ X-Hue: red X-Attribution: GM User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.10 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:149246 Archived-At: Hi, > revno: 107697 > committer: Sam Steingold > 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 > + > + * 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 > > * 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."