> > I think for the reason above that it should be buffer local
and I also
> > think that it should be permanent buffer local then.
>
> I think this wouldn't make much sense since `buffer-undo-list' isn't
> permanently buffer-local either.
>
> It is, practically speaking. It is buffer-local, and changing major
> modes does not clear it out.
Like `buffer-file-name'. Would it make sense to introduce a variable,
say `buffer-file-name-extension', assign its initial value from
`buffer-file-name', make it a permanent buffer-local, and hope that the
value of the new variable always correctly reflects the extension of
`buffer-file-name' without any additional provisions?
Various parts of Emacs manipulate `buffer-undo-list' in various ways.
`revert-buffer' may reset it. Some applications temporarily bind it to
t to avoid, for example, recording text property changes. Finally undo
recording may be switched off. Should `pending-undo-list' be affected
by all these and how?