Subject: bug#22564: Fundamental mode isn't fundamental enough.

From: Alan Mackenzie <[email-masked]>
Date: Fri, 5 Feb 2016 12:55:59 +0000

Hello, Emacs.

I've just tried to paste some text into a fundamental mode buffer, using
GNU/Linux's GPM mouse utility.  It gets fouled up by some facility that
decides I want some automatic indentation, despite being in fundamental
mode.  As far as I understand, GPM does pasting by effectively typing a
character at a time.

The original text (from an email by Michael Duggan) is this:

#########################################################################
In the following C++ snippet:

template <typename Arg, typename... Args>
struct ArgListMatcher<Arg, Args...> :
    ArgListMatcher<MakeIndices<CountRef<Arg>::value>,
                   MakeIndices<sizeof...(Args) - CountRef<Arg>::value, CountRef<Arg>::value>,
                       Arg, Args...>
{
  using Parent = ArgListMatcher<
    MakeIndices<CountRef<Arg>::value>,
    MakeIndices<sizeof...(Args) + 1 - CountRef<Arg>::value,
                CountRef<Arg>::value>, Arg, Args...>;
  using Parent::ArgListMatcher;
};
#########################################################################

The corrupted text, looks like this:

#########################################################################
In the following C++ snippet:

template <typename Arg, typename... Args>
struct ArgListMatcher<Arg, Args...> :
    ArgListMatcher<MakeIndices<CountRef<Arg>::value>,
                       MakeIndices<sizeof...(Args) - CountRef<Arg>::value, CountRef<Arg>::value>,
                                              Arg, Args...>
                                              {
                                                using Parent = ArgListMatcher<
                                                    MakeIndices<CountRef<Arg>::value>,
                                                        MakeIndices<sizeof...(Args) + 1 - CountRef<Arg>::value,
                                                                        CountRef<Arg>::value>, Arg, Args...>;
                                                                          using Parent::ArgListMatcher;
                                                                          };
#########################################################################

Now there will be some sort of option I can set so that this won't
happen.  But I shouldn't have to.  More to the point, a new user who is
unfamiliar with Emacs's documentation shouldn't have to.  Surely the
whole point of fundamental mode is that "clever" things like this should
all be disabled.

This is surely a bug.

-- 
Alan Mackenzie (Nuremberg, Germany).