Subject: bug#4187: Bug with indentation / parens matching in C++-mode

From: "Tobias.Schlueter" <[email-masked]>
Date: Tue, 18 Aug 2009 14:04:21 +0200 (CEST)

This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.4.1 (i686-redhat-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2008-01-04 on norob.fnal.gov
configured using `configure  --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu --target=i386-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-pop --with-sound'
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
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

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

Type the following into a buffer which is in C++ mode.  Try to get
correct indentation for the second line of the while condition or the
line following it by hitting the TAB key.  In my case this fails
miserably.  Modifying the while condition to fix this behaves rather
erratically, adding parentheses at least doesn't fix it.

{
  do {
  } while (fabs(chi2 - oldChi2) > 0
      && count < iterMax);
x= 1;
}

You can reach me under [email-masked], I don't know if this
interface will place the right sender address on the mail.  I guess
the stuff emacs put below will not be of much help, so I'm cutting it
(recent input, the bug appears independent of my input).

Cheers,
- Tobias Schlüter