diff options
author | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2014-11-16 23:36:58 +0100 |
---|---|---|
committer | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2014-11-16 23:41:55 +0100 |
commit | d1b04a9e7ada7070dbd84bb450411c1f169b3739 (patch) | |
tree | 8f0e26d1e2154f91364fd1b919df8bd8855604fd /src/textprop.c | |
parent | c94988f4b740738cbc4660ee9c64637e55ad5d76 (diff) | |
download | emacs-d1b04a9e7ada7070dbd84bb450411c1f169b3739.tar.gz |
Implement an `inhibit-read-only' text property
* doc/lispref/text.texi (Special Properties): Mention `inhibit-read-only'.
* src/buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if
the text at POSITION (new optional argument) has the
`inhibit-read-only' text property set.
* src/callint.c (Fcall_interactively): Pass in nil as argument to
Fbarf_if_buffer_read_only.
* src/fileio.c (Finsert_file_contents): Ditto.
* src/insdel.c (prepare_to_modify_buffer_1): Pass start region in.
* src/intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only'
text property.
* src/textprop.c (verify_interval_modification): Check buffer
readedness after the last interval.
Diffstat (limited to 'src/textprop.c')
-rw-r--r-- | src/textprop.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/textprop.c b/src/textprop.c index 91ade8ae298..7ecac62be98 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -2298,6 +2298,11 @@ verify_interval_modification (struct buffer *buf, } } + if (i->position + LENGTH (i) < end + && (!NILP (BVAR (current_buffer, read_only)) + && NILP (Vinhibit_read_only))) + xsignal1 (Qbuffer_read_only, Fcurrent_buffer ()); + i = next_interval (i); } /* Keep going thru the interval containing the char before END. */ |