Subject: bug#7798: closed (Re: bug#7798: gnus-summary-next-article selects the nil window)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 11 Jan 2011 18:35:02 +0000

Your bug report

#7798: gnus-summary-next-article selects the nil window

which was filed against the emacs,gnus package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
7798: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7798
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7798: gnus-summary-next-article selects the nil window
From: Lars Magne Ingebrigtsen <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked]
Date: Tue, 11 Jan 2011 19:40:42 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Stefan Monnier <[email-masked]> writes:

> This is because of the following piece of code in gnus-summary-next-article:
>
>       ;; For some reason, the group window gets selected.  We change
>       ;; it back.
>       (select-window (get-buffer-window (current-buffer)))
>
> At this point the selected frame is the one displaying the *Group*
> buffer, and the current-buffer is the *Summary...* buffer, which is not
> displayed in this frame.  I added a 0 argument to get-buffer-window
> which seems to work around the problem, but fundamentally I'm not sure
> it's right for this code to assume that *Summary...* is
> displayed somewhere.

It seems to work OK with the kludge removed, so I just removed it.
We'll see if anybody complains.

-- 
(domestic pets only, the antidote for overdose, milk.)
  [email-masked] * Lars Magne Ingebrigtsen

Subject: gnus-summary-next-article selects the nil window
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Thu, 06 Jan 2011 23:06:12 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: Emacs
Version: 24.0.50

When I reach the end of a group in Gnus, if I have the *Group* buffer
displayed in a separate frame, pressing `n' signals an error about
select-window being called with a nil argument.

This is because of the following piece of code in gnus-summary-next-article:

      ;; For some reason, the group window gets selected.  We change
      ;; it back.
      (select-window (get-buffer-window (current-buffer)))

At this point the selected frame is the one displaying the *Group*
buffer, and the current-buffer is the *Summary...* buffer, which is not
displayed in this frame.  I added a 0 argument to get-buffer-window
which seems to work around the problem, but fundamentally I'm not sure
it's right for this code to assume that *Summary...* is
displayed somewhere.

        Stefan

In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2011-01-05 on pastel
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
configured using `configure  '--enable-maintainer-mode' 'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O1 -I/usr/include/GNUstep' '--with-x-toolkit=lucid''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: fr_CH.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  outline-minor-mode: t
  flyspell-mode: t
  eldoc-mode: t
  checkdoc-minor-mode: t
  electric-pair-mode: t
  electric-indent-mode: t
  url-handler-mode: t
  global-reveal-mode: t
  reveal-mode: t
  auto-insert-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
l SPC l k k n n n N N N n <return> <return> <return> 
<return> <return> <return> n n n SPC n n n n n n n 
<switch-frame> <switch-frame> <help-echo> <down-mouse-1> 
<mouse-2> <switch-frame> <switch-frame> <switch-frame> 
q <switch-frame> C-e <right> <down> <up> C-M-x n <switch-frame> 
<switch-frame> <switch-frame> <help-echo> <select-window> 
<select-window> n <switch-frame> <switch-frame> <help-echo> 
<switch-frame> <switch-frame> C-s s e l e c t - w i 
n C-a <left> <right> <down> <left> <right> <up> <left> 
<right> <up> <left> <right> <up> <left> <right> <up> 
<left> <right> <down> <left> <right> <down> <left> 
<right> <down> <left> <right> <up> <left> <right> <up> 
<left> <right> <up> <left> <right> <up> <left> <right> 
<up> <left> <right> <up> <left> <right> <down> <left> 
<right> <down> <left> <right> <down> <left> <right> 
<down> <left> <right> <down> <left> <right> <down> 
<left> <right> <down> <left> <right> <down> <left> 
<right> <up> <up> <left> <right> <left> <right> <right> 
<right> <right> <help-echo> <switch-frame> <switch-frame> 
e ( c u r r e n t - b u f f e r ) <return> e M-p ( 
g e t - b u f f e r - w i n d o w SPC C-e ) <return> 
e M-p C-e <left> SPC 0 C-e <return> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <help-echo> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<help-echo> <select-window> <switch-frame> q <switch-frame> 
M-x r e p - e m - b u g <tab> <return> C-g <down-mouse-4> 
<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> 
<triple-mouse-4> M-x M-p C-g <down-mouse-1> <mouse-movement> 
<mouse-1> C-M-SPC M-w M-x M-p <return>

Recent messages:
Add PUSH documentation to end of doc string? (y or n)  n
checkdoc-defun: Argument `push' should appear (as PUSH) in the doc string
Entering debugger...
Mark saved where search started
#<buffer *Summary nnimap+diro:emacs*>
nil
#<window 3 on *Summary nnimap+diro:emacs*>
Back to top level.
Quit [3 times]
Mark set

Load-path shadows:
/usr/share/emacs23/site-lisp/bbdb/bbdb hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb
/usr/share/emacs23/site-lisp/bbdb/bbdb-mhe hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-mhe
/usr/share/emacs23/site-lisp/bbdb/bbdb-gnus hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-gnus
/usr/share/emacs23/site-lisp/bbdb/bbdb-migrate hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-migrate
/usr/share/emacs23/site-lisp/bbdb/bbdb-sc hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-sc
/usr/share/emacs23/site-lisp/bbdb/bbdb-snarf hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-snarf
/usr/share/emacs23/site-lisp/bbdb/bbdb-w3 hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-w3
/usr/share/emacs23/site-lisp/bbdb/bbdb-gui hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-gui
/usr/share/emacs23/site-lisp/bbdb/bbdb-print hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-print
/usr/share/emacs23/site-lisp/bbdb/bbdb-rmail hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-rmail
/usr/share/emacs23/site-lisp/bbdb/bbdb-vm hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-vm
/usr/share/emacs23/site-lisp/bbdb/bbdb-ftp hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-ftp
/usr/share/emacs23/site-lisp/bbdb/bbdb-merge hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-merge
/usr/share/emacs23/site-lisp/bbdb/bbdb-whois hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-whois
/usr/share/emacs23/site-lisp/bbdb/bbdb-com hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-com
/usr/share/emacs23/site-lisp/bbdb/bbdb-hooks hides /usr/share/emacs/site-lisp/bbdb/lisp/bbdb-hooks

Features:
(vc-dispatcher gnus-dup browse-url emacsbug woman tutorial help-macro
man assoc info-look info help-at-pt ehelp apropos multi-isearch cl-specs
xscheme warnings trace testcover scheme unsafep re-builder shadow
inf-lisp ielm pp comint ring elp edebug cust-print vc-bzr sha1 hex-util
filecache find-func debug nnfolder gnus-topic cus-edit cus-start
cus-load nnagent nnml flow-fill supercite regi mule-util sort smiley
ansi-color gnus-cite mail-extr gnus-async gnus-bcklg qp byte-opt
bytecomp byte-compile gnus-ml disp-table nndraft nnmh nnimap parse-time
utf7 executable copyright gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime
smime password-cache dig mailcap nntp proto-stream starttls tls
gnus-cache nnir gnus-sum macroexp nnoo gnus-group time-date gnus-undo
nnmail mail-source format-spec server gnus-start gnus-spec gnus-int
gnus-range message sendmail rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win gnus gnus-ems nnheader mail-utils wid-edit
noutline outline easy-mmode flyspell ispell eldoc checkdoc regexp-opt
thingatpt help-mode easymenu view prog-mode electric url-handlers
url-parse auth-source netrc gnus-util url-vars mm-util mail-prsvr reveal
autoinsert uniquify advice help-fns advice-preload savehist
minibuf-eldef cl cl-loaddefs proof-site proof-autoloads pg-vars
bbdb-autoloads agda2 tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page
newcomment menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
button faces cus-face files text-properties overlay md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)