unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#13432: 24.2; File does not get saved when save-buffer called
@ 2013-01-13 22:40 Peter Milliken
  2013-01-14  0:54 ` Glenn Morris
  2013-01-14  1:38 ` Stefan Monnier
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Milliken @ 2013-01-13 22:40 UTC (permalink / raw)
  To: 13432

[-- Attachment #1: Type: text/plain, Size: 7442 bytes --]

From: Peter Milliken <peterm@resmed.com.au>
To: bug-gnu-emacs@gnu.org
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)

[-- Attachment #2: Type: text/html, Size: 9731 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#13432: 24.2; File does not get saved when save-buffer called
  2013-01-13 22:40 bug#13432: 24.2; File does not get saved when save-buffer called Peter Milliken
@ 2013-01-14  0:54 ` Glenn Morris
  2013-01-14  1:38 ` Stefan Monnier
  1 sibling, 0 replies; 3+ messages in thread
From: Glenn Morris @ 2013-01-14  0:54 UTC (permalink / raw)
  To: Peter Milliken; +Cc: 13432

Peter Milliken wrote:

> 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)))))

Please read the doc of local-write-file-hooks:

  This variable is obsolete since 22.1;
  use `write-file-functions' instead.

From write-file-functions:

If one of them returns non-nil, the file is considered already written
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
and the rest are not called.

So: ensure that any functions you add return nil. The return value of
untabify is unspecfied (ie, could be anything).





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#13432: 24.2; File does not get saved when save-buffer called
  2013-01-13 22:40 bug#13432: 24.2; File does not get saved when save-buffer called Peter Milliken
  2013-01-14  0:54 ` Glenn Morris
@ 2013-01-14  1:38 ` Stefan Monnier
  1 sibling, 0 replies; 3+ messages in thread
From: Stefan Monnier @ 2013-01-14  1:38 UTC (permalink / raw)
  To: Peter Milliken; +Cc: 13432-done

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





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-01-14  1:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-13 22:40 bug#13432: 24.2; File does not get saved when save-buffer called Peter Milliken
2013-01-14  0:54 ` Glenn Morris
2013-01-14  1:38 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).