Subject: bug#13432: closed (Re: bug#13432: 24.2; File does not get saved when save-buffer called)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 14 Jan 2013 01:40:04 +0000

Your bug report

#13432: 24.2; File does not get saved when save-buffer called

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

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

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

Subject: Re: bug#13432: 24.2; File does not get saved when save-buffer called
From: Stefan Monnier <[email-masked]>
To: Peter Milliken <[email-masked]>
Cc: [email-masked]
Date: Sun, 13 Jan 2013 20:38:56 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

tags 13432 notabug
thanks

> (defadvice python-mode (after minor-modes-for-python activate compile)
>   (add-hook 'local-write-file-hooks
>             '(lambda () (untabify (point-min) (point-max)))))

As Glenn explains, this is not a bug.  It's probably due to a change in
untabify which now returns a different value, but since the return value
of untabify is undocumented, this is not a bug/regression.

But while I'm here, I'll point out a few improvement to your above code:
- don't quote lambda.
- use python-mode-hook rather than defadvice.
- use before-save-hook rather than local-write-file-hooks (this will
  also fix your problem).

I.e.

  (add-hook 'python-mode-hook
            (lambda ()
              (add-hook 'before-save-hook
                        (lambda () (untabify (point-min) (point-max)))
                        nil 'local)))

-- Stefan

Subject: 24.2; File does not get saved when save-buffer called
From: Peter Milliken <[email-masked]>
To: [email-masked]
Date: Mon, 14 Jan 2013 09:40:55 +1100
List-Id: <debbugs-submit.debbugs.gnu.org>

From: Peter Milliken <[email-masked]>
To: [email-masked]
Subject: 24.2; File does not get saved when save-buffer called
--text follows this line--
This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgement at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

This behaviour started with Emacs 24.1 - it does not happen on earlier
versions.

In my .emacs I defadvice several major modes to include a call to
untabify in the local-write-file-hooks. With this version of Emacs, the
defadvice
seems to trigger a bug where the message line states the file has been
saved when it has not been saved - the status line indicates it is still
in a modified state as well.

Minimal/sample code that triggers/illustrates this bug is:

(defadvice python-mode (after minor-modes-for-python activate compile)
  (add-hook 'local-write-file-hooks '(lambda () (untabify (point-min)
(point-max)))))

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
c:/emacs/etc/DEBUG.

In GNU Emacs 24.2.1 (i386-mingw-nt6.1.7601)
 of 2012-08-29 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --with-gcc (4.6) --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include'

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: cp1252
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  show-paren-mode: t
  iswitchb-mode: t
  desktop-save-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  recentf-mode: t
  tooltip-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent input:
C-x b p e p <return> SPC <backspace> C-x C-s C-x 3
C-x b e m <return> C-x C-f C-a C-k c : / e m <tab>
/ l i s p <tab> u n t a b <tab> <backspace> <backspace>
<backspace> <backspace> <backspace> t a b <tab> <return>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <escape> C-x <up> <up> <up> <up> <up>
C-x C-g <escape> x r e p o r t SPC e m SPC SPC <re
turn>

Recent messages:
Language Python exists, assuming attribute modification
Fill column set to 80 (was 70)
Language C exists, assuming attribute modification
Fill column set to 80 (was 70)
Wrote c:/cygwin/home/peterm/.emacs.desktop.lock
Desktop: 4 buffers restored.
For information about GNU Emacs and the GNU system, type C-h C-a.
Saving file c:/cygwin/home/peterm/share/emacs/site-lisp/pymacs/pep.py...
Wrote c:/cygwin/home/peterm/share/emacs/site-lisp/pymacs/pep.py
untabify
Quit

Load-path shadows:
~/share/emacs/site-lisp/python-mode hides
~/share/emacs/site-lisp/python-mode/python-mode
~/share/emacs/site-lisp/tree-widget hides c:/emacs/lisp/tree-widget
~/share/emacs/site-lisp/expand hides c:/emacs/lisp/expand
~/share/emacs/site-lisp/bs hides c:/emacs/lisp/bs
~/share/emacs/site-lisp/ansi-color hides c:/emacs/lisp/ansi-color
~/share/emacs/site-lisp/cc-mode/cc-vars hides
c:/emacs/lisp/progmodes/cc-vars
~/share/emacs/site-lisp/cc-mode/cc-styles hides
c:/emacs/lisp/progmodes/cc-styles
~/share/emacs/site-lisp/cc-mode/cc-mode hides
c:/emacs/lisp/progmodes/cc-mode
~/share/emacs/site-lisp/cc-mode/cc-menus hides
c:/emacs/lisp/progmodes/cc-menus
~/share/emacs/site-lisp/cc-mode/cc-langs hides
c:/emacs/lisp/progmodes/cc-langs
~/share/emacs/site-lisp/cc-mode/cc-guess hides
c:/emacs/lisp/progmodes/cc-guess
~/share/emacs/site-lisp/cc-mode/cc-fonts hides
c:/emacs/lisp/progmodes/cc-fonts
~/share/emacs/site-lisp/cc-mode/cc-engine hides
c:/emacs/lisp/progmodes/cc-engine
~/share/emacs/site-lisp/cc-mode/cc-defs hides
c:/emacs/lisp/progmodes/cc-defs
~/share/emacs/site-lisp/cc-mode/cc-compat hides
c:/emacs/lisp/progmodes/cc-compat
~/share/emacs/site-lisp/cc-mode/cc-cmds hides
c:/emacs/lisp/progmodes/cc-cmds
~/share/emacs/site-lisp/cc-mode/cc-bytecomp hides
c:/emacs/lisp/progmodes/cc-bytecomp
~/share/emacs/site-lisp/cc-mode/cc-awk hides c:/emacs/lisp/progmodes/cc-awk
~/share/emacs/site-lisp/cc-mode/cc-align hides
c:/emacs/lisp/progmodes/cc-align
~/share/emacs/site-lisp/todo-mode hides c:/emacs/lisp/calendar/todo-mode
~/share/emacs/site-lisp/timeclock hides c:/emacs/lisp/calendar/timeclock
c:/emacs/lisp/recentf hides ~/share/emacs/site-lisp/fsfemacs/recentf

Features:
(shadow sort mail-extr emacsbug paren vc-dispatcher vc-svn iswitchb
pymacs session color-theme reporter desktop timid undo-tree diff iedit
ido message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader smtpmail auth-source
eieio password-cache sendmail rfc2047 rfc2045 ietf-drums pabbrev
thingatpt browse-kill-ring ibuffer timeclock host-conn gnus gnus-ems
nnheader gnus-util mail-utils mm-util mail-prsvr info ange-vms ange-ftp
woman man recentf tree-widget wid-edit array logger assoc eval-expr
w32-print ps-print ps-def lpr misc-defuns template-mode noweb derived
multi-mode gnuserv python-mode find-utility utils rect wide-column
easy-mmode ada-mode compile comint ansi-color ring which-func imenu
find-file scroll-in-place cc-mode warnings edmacro kmacro byte-opt
bytecomp byte-compile cconv macroexp cc-fonts cc-awk cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-langs cc-vars cc-defs regexp-opt
cc-bytecomp fold-isearch folding advice help-fns advice-preload easymenu
cl escreen else-utils else-mode expand-a-word setnu align-addons align
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32
disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
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
minibuffer loaddefs button faces cus-face files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty emacs)