Subject: bug#22819: 25.0.91; Don't try to indent region if the buffer is read-only

From: [email-masked]
Date: Tue, 08 Aug 2017 09:15:34 -0400

Kaushal Modi <[email-masked]> writes:

> The advice gets tricky because I want to add barf-if-buffer-read-only
> only if the original fn's interactive form had "*".
>
> I am using the same advice fn for eval-region and indent-region.. so I
> don't need the barf fn call for eval-region.

Possibly you could do something with `interactive-form' and
`advice-eval-interactive-spec', but yes it's a bit tricky.

> @Eli: Based on the discussion[1] on emacs-devel, there isn't any
> opposition to doing what's proposed in this bug thread. So if it's
> alright by you, and if there is no strong reason to use the more
> concise alternative i.e. if both barf-if-buffer-read-only and
> interactive "*.." are equally correct, can the former approach be
> committed?

The choice is not between "*.." and `barf-if-buffer-read-only' as such,
"*.." is merely the string version of `barf-if-buffer-read-only'.  The
choice is between calling `barf-if-buffer-read-only' inside the
`interactive' form or inside the function itself.