1. There are three places (indent.c:line_number_display_width,
xdisp.c:display_count_lines_logically, fileio.c:write_region) where we
currently use
record_unwind_protect (save_restriction_restore, save_restriction_save ());
Fwiden ();
I'm not sure these should be subject to locked narrowing. They don't
present performance problems with very long lines, AFAIK.
2. In another place (process.c:Finternal_default_process_filter) we
currently have:
/* If the output marker is outside of the visible region, save
the restriction and widen. */
if (! (BEGV <= PT && PT <= ZV))
Fwiden ();
(without the "save the restriction" mentioned in the comment).
This should be fixed to use unwind-protect of some kind, I think, and
that's orthogonal to locked narrowing.
3. Also, in Ferase_buffer, we do Fwiden to "delete the entire contents
of the current buffer".
These five places probably need to be adapted to handle labeled
narrowings correctly. If you agree with that, I'll write a patch to
that effect.
I'm not sure what you mean by "adapt to". Please tell more.