[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#4069: 23.1.50; whitespace.el

From: Craig Falls
Subject: bug#4069: 23.1.50; whitespace.el
Date: Thu, 6 Aug 2009 16:31:18 -0400

There is a problem with whitespace-cleanup, when called before
whitespace-turn-on.  The buffer-local variable
whitespace-indentation-regexp doesn't get updated to correspond to the
buffer-local value of indent-tabs-mode.  This means that even if
indent-tabs-mode is nil, a line with text following a single tab
character will not be converted into a line of text following 8 space
characters when whitespace-cleanup is called.  There is a simple
work-around -- just turn whitespace on and off again to set the
buffer-local variables:

(defun my-whitespace-cleanup ()
  "Fixes a bug in whitespace-cleanup in which buffer-local
indent-tabs-mode is not respected."
  (whitespace-turn-on) ;; sets buffer-local variables
  (whitespace-turn-off) ;; don't actually want the mode to be on

Here are instructions to replicate the problem:

Start up with no .emacs.  Set indent-tabs-mode to nil.  Make sure
'indentation is in whitespace-style.  Insert a tab character into a
buffer with no spaces after it, e.g. the line could be "\tfoo".  Run
whitespace-cleanup in the buffer.  Note that the tab character is still
there.  Now run my-whitespace-cleanup.  Note that the tab character has
been replaced by spaces.

The fact that indent-tabs-mode is buffer-local is important.  For
example, makefile-mode sets it to true since tabs are a necessary part
of the syntax of make files.

In GNU Emacs (x86_64-unknown-linux-gnu, GTK+ Version 2.10.4)
 of 2009-08-03 on nyc-qws-005
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
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_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: GNUmakefile

Minor modes in effect:
  shell-dirtrack-mode: t
  flyspell-mode: t
  desktop-save-mode: t
  diff-auto-refine-mode: t
  partial-completion-mode: t
  dynamic-completion-mode: t
  show-paren-mode: t
  recentf-mode: t
  iswitchb-mode: t
  global-auto-revert-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/mnt/global/dev/lib/elisp/inf-caml hides 
/mnt/global/dev/lib/elisp/tuareg-mode/camldebug hides 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]