all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alex Harsanyi <harsanyi@mac.com>
To: 6324@debbugs.gnu.org
Subject: bug#6324: 24.0.50; vc modeline is not updated when buffer mode is changed
Date: Tue, 1 Jun 2010 20:30:12 +0800	[thread overview]
Message-ID: <94635060-11A1-4E76-B21D-0B4F145D4988@mac.com> (raw)

There is a problem with updating the mode line for VC operations when
the buffer mode is changed.  The easiest way to reproduce using
mercurial is as follows (the problem should exist for every version
control):

The VC mode uses the `mode-line-hook' variable to update the mode line.
This variable is set up in `vc-find-file-hook' and it is made buffer
local.  The problem is that this variable should have a 'permanent-local
property set.  If it does not, changing the buffer mode runs
`kill-all-local-variables' which removes it from the buffer.  From than
on, the VC mode line will no longer be updated when the file is checked
in, etc.

I found out this problem when I opened a text file (.txt extension) and
switched the major mode to rst-mode.

Here is a patch that corrects the problem:

--- lisp/vc-hooks.el	2010-04-09 17:19:53 +0000
+++ lisp/vc-hooks.el	2010-06-01 12:24:32 +0000
@@ -877,6 +877,7 @@ current, and kill the buffer that visits
   (when buffer-file-name
     (vc-file-clearprops buffer-file-name)
     (add-hook 'mode-line-hook 'vc-mode-line nil t)
+    (put 'mode-line-hook 'permanent-local t)
     (let (backend)
       (cond
        ((setq backend (with-demoted-errors (vc-backend buffer-file-name)))


Here are some detailed steps to reproduce the problem:

1/  First create a test repository:

    $ mkdir test.hg
    $ cd test.hg/
    $ hg init
    $ echo "Hello World" > hello.txt
    $ hg add hello.txt 
    $ hg commit -m "Initial" hello.txt 

2/  In emacs, open the file hello.txt, than execute "M-x normal-mode RET"

3/ Note the VC version in the mode line, modify the file and check it
in.

4/ Notice that the VC version in the mode line does not change.




In GNU Emacs 24.0.50.1 (x86_64-apple-darwin10.3.0, NS apple-appkit-1038.29)
of 2010-06-01 on karinji-2.local
Windowing system distributor `Apple', version 10.3.1038
configured using `configure  '--with-ns''

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: en_AU.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Text

Minor modes in effect:
  show-paren-mode: t
  global-cwarn-mode: t
  display-time-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
  size-indication-mode: t
  line-number-mode: t

Recent input:
<help-echo> <help-echo> C-x 1 C-x C-f P r o <tab> E 
M <tab> t e <tab> <return> <down> <return> M-x n o 
r m <tab> m o <tab> <return> <down> <down> <up> <down> 
<return> k j f d s <return> C-x C-s C-x v v C-c C-c 
C-x v l C-x 0 M-x r e n v e <backspace> <backspace> 
<backspace> v e <tab> r <tab> t <tab> <return> y e 
s <return> M-x r e p o <tab> r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading vc-hg...done
byte-code: End of buffer
Saving file /Users/haral/Projects/Emacs/test.hg/hello.txt...
Wrote /Users/haral/Projects/Emacs/test.hg/hello.txt
Mark set
Press C-c C-c when you are done editing.
Enter a change comment.  Type C-c C-c when done
Checking in /Users/haral/Projects/Emacs/test.hg/hello.txt...done
Making completion list... [3 times]

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader emacsbug
help-mode view log-view wid-edit log-edit easy-mmode ring pcvs-util
add-log vc vc-dispatcher vc-hg dired uniquify paren avoid cwarn
cus-start cus-load appt diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs time tex-site folding-isearch folding advice help-fns
advice-preload protbuf warnings server midnight time-stamp whitespace
iswitchb cc-mode cc-menus cc-cmds ah-bufsel ah-cc-mode-extra cc-styles
cc-align cc-fonts cc-engine cc-vars cc-defs regexp-opt ah-util
autoinsert cl cl-19 tooltip ediff-hook vc-hooks lisp-float-type mwheel
ns-win easymenu tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process ns multi-tty emacs)





             reply	other threads:[~2010-06-01 12:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-01 12:30 Alex Harsanyi [this message]
2010-06-09  1:14 ` bug#6324: 24.0.50; vc modeline is not updated when buffer mode is changed Stefan Monnier

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=94635060-11A1-4E76-B21D-0B4F145D4988@mac.com \
    --to=harsanyi@mac.com \
    --cc=6324@debbugs.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.