>> On Wed, Mar 23 2016 12:41, Vitalie Spinu wrote: >> I'm just suggesting to keep the limits as markers rather than as integers. Attaching a patch for this. AFAIC it shapes pretty nicely. There are two types of narrowing, visual and hard. The imposition or lifting of these is done through narrow-to-region and widen depending on the value of optional HARD argument. I haven't tested it yet because of the following build problem with loaddeffs: ... Finding pointers to doc strings... Finding pointers to doc strings...done Dumping under the name emacs 91970 pure bytes used : paxctl -zex emacs mv -f emacs bootstrap-emacs make -C ../lisp compile-first EMACS="../src/bootstrap-emacs" make[3]: Entering directory '/home/vspinu/bin/emacs-test/lisp' ELC emacs-lisp/macroexp.elc ELC emacs-lisp/cconv.elc ELC emacs-lisp/byte-opt.elc ELC emacs-lisp/bytecomp.elc ELC emacs-lisp/autoload.elc make[3]: Leaving directory '/home/vspinu/bin/emacs-test/lisp' make -C ../lisp autoloads EMACS="../src/bootstrap-emacs" make[3]: Entering directory '/home/vspinu/bin/emacs-test/lisp' GEN calendar/cal-loaddefs.el Loading macroexp.elc... appt.el:0:0: error: wrong-type-argument: (markerp /home/vspinu/bin/emacs-test/lisp/calendar/appt.el) Makefile:402: recipe for target 'calendar/cal-loaddefs.el' failed make[3]: *** [calendar/cal-loaddefs.el] Error 255 make[3]: Leaving directory '/home/vspinu/bin/emacs-test/lisp' Makefile:727: recipe for target '../lisp/loaddefs.el' failed make[2]: *** [../lisp/loaddefs.el] Error 2 make[2]: Leaving directory '/home/vspinu/bin/emacs-test/src' Makefile:398: recipe for target 'src' failed make[1]: *** [src] Error 2 make[1]: Leaving directory '/home/vspinu/bin/emacs-test' Makefile:1091: recipe for target 'bootstrap' failed make: *** [bootstrap] Error 2 Any ideas of why this is happening? The relevant branch is scratch/hard-narrow. Vitalie