Subject: 23.0.60; diff mode inverted logic

From: David Abrahams <[email-masked]>
Date: Wed, 03 Sep 2008 09:30:34 -0400

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

    diff -dur directory1 directory2 > changes.diff
    `C-x C-f changes.diff'
    `C-x C-q' ;; to make the buffer read-only, if it isn't already
    `N'
    `C-c C-a'

The diff described above generates a patch that can be used to transform
directory1 so that it is identical to directory2.  However, using
diff-mode with default settings to actually perform that transformation
is unaccountably awkward.  First of all, if you use diff mode in the
most obvious way, it wants to modify directory2 instead of directory1.
The only way I know of to get it to operate on directory1 instead is to
invert the direction of the diffs with `C-c C-r'.  But then every time I
apply a diff, I am told that it has already been applied and asked if I
want to undo it.  I can say yes and get the behavior I want, but as I
noted, it's awkward at best.  Hmm, I just discovered
diff-jump-to-old-file, which defaults to nil, and corrects this problem!
What use case is made easier by its default setting?

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'.
If you would like to further debug the crash, please read the file
/usr/local/share/emacs/23.0.60/etc/DEBUG for instructions.

In GNU Emacs 23.0.60.2 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2008-05-03 on mcbain
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
configured using `configure  '--with-x-toolkit=gtk' '--prefix=/usr/local''

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: Diff

Minor modes in effect:
  shell-dirtrack-mode: t
  show-paren-mode: t
  global-auto-revert-mode: t
  delete-selection-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
  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:
C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-p M-< M-! M-p C-. 
C-. C-. C-. C-. C-. C-. C-, <M-backspace> <backspace> 
<return> C-S-x C-S-w M-P M-P M-P M-P <return> Y Y C-S-x 
B B O O <tab> C-S-g C-S-x C-S-k M-< C-_ C-_ C-S-x C-S-v 
<return> Y E S <return> y e s <return> n C-_ C-x C-q 
n C-c C-r <return> C-x C-f C-g C-x C-n C-c C-a y C-h 
m C-x C-p C-s b u g C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-s C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-x C-k C-x C-n M-x e m a c 
s - b u <tab> <backspace> <backspace> <backspace> <tab> 
<tab> C-g C-g C-h a b u g <return> C-x C-p C-s r e 
p o r t C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s 
C-x C-k C-x C-n M-x r e p o <tab> r t <tab> b u <tab> 
<return>

Recent messages:
Mark set
Hunk has already been applied; undo it? (y or n) 
Hunk undone
Type C-x 4 C-o RET to restore the other window, C-M-v to scroll help.
Mark saved where search started
Making completion list...
Quit [2 times]
Type C-x 4 C-o RET to restore the other window.  
Mark saved where search started
Making completion list...

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com