bug#4041: 23.0.92; Emacs 23: buffer point is no longer frame-local

Steve Yegge <[email protected]>
Newsgroups gmane.emacs.bugs,gmane.emacs.pretest.bugs
Message-ID <20090805001735.1CC041E844E@localhost>
1) emacs -q  (with non-nil window-system)
2) find-file /usr/share/dict/words
   - any file longer than ~3x the frame height should serve to demonstrate
   - in remaining steps I'll call this file buffer BUF
3) (goto-char (/ (point-max) 2))
4) (new-frame)
5) (other-frame)  ; if necessary to put point in new frame
6) switch to buffer BUF
7) (goto-char (point-min))
8) switch to buffer *scratch* (or any other buffer)
9) switch to buffer BUF

Observe that point has returned to (/ (point-max) 2).

In Emacs 22, buffer point behaved as if it were frame-local:
at step 9, point would still be at (point-min).

This change may seem innocuous, but it can be quite frustrating and
mysterious if you have a multi-tty frame open at another site.
The buffer point behaves as if it's "stuck":  every time you switch
away from the buffer and return, the point has returned to its
sticky position.

The behavior exhibits in both multi-tty and single-tty flavors, but
is easier to trigger in a long-running multi-tty session distributed
over multiple sites (e.g. home and work).  It was serious enough to


In GNU Emacs 23.0.92.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.12.9)
 of 2009-04-14 on stevey.krc.corp.google.com
Windowing system distributor `The X.Org Foundation', version 11.0.60900000
configured using `configure  '--prefix=/home/stevey/no_crawl/emacs-cvs''

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

Major mode: Fundamental

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> M-x s h e l l <return> C-x 
k <return> C-x b A <return> C-x k <return> C-x C-f 
C-a C-k / u s r / s h a r e / d i c t / w o r <tab> 
<return> C-x 2 C-x e M-> M-v M-v M-v C-r s t e C-a 
C-u C-r ^ s C-a C-x RET n e w - f r <tab> C-e C-a M-x 
n e w - f r <tab> <return> <switch-frame> <help-echo> 
<help-echo> <help-echo> C-x 2 C-x o C-x t M-< C-x b 
<return> C-x b w o <tab> <return> C-x o M-< C-x o C-v 
C-v C-v C-v C-v C-v C-v C-x o C-x 1 C-x b <return> 
C-x b w o <tab> <return> <switch-frame> M-x e <backspace> 
r e p o r t - e m a c s - b u g <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Note: file is write protected
kmacro-call-macro: No kbd macro has been defined
Mark set
Mark saved where search started [2 times]
Buffer is read-only: #<buffer words> [5 times]
indent-relative: Buffer is read-only: #<buffer words>
Mark set [2 times]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.