>>> Yes: that's what the "record_unwind_protect (save_restriction_restore, >>> save_restriction_save ());" does. >> >> So save_restriction_restore will reinstate the buffer in the >> narrowing_locks list? > > Yes: > > Lisp_Object > save_restriction_save (void) > { > Lisp_Object restr = save_restriction_save_1 (); > Lisp_Object locks = narrowing_locks_save (); > return Fcons (restr, locks); > } > > void > save_restriction_restore (Lisp_Object data) > { > narrowing_locks_restore (XCDR (data)); > save_restriction_restore_1 (XCAR (data)); > } > Eli, do you have further comments or objections, or can I install this? (Patch attached again for your convenience.) BTW, I also would like to rename the narrowing_locks_* functions to make their names coherent with your change of the name of the macro from 'with-narrowing' to 'with-restriction'. I guess that's okay?