summaryrefslogtreecommitdiff
path: root/src/textprop.c
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2014-11-16 23:36:58 +0100
committerLars Magne Ingebrigtsen <larsi@gnus.org>2014-11-16 23:41:55 +0100
commitd1b04a9e7ada7070dbd84bb450411c1f169b3739 (patch)
tree8f0e26d1e2154f91364fd1b919df8bd8855604fd /src/textprop.c
parentc94988f4b740738cbc4660ee9c64637e55ad5d76 (diff)
downloademacs-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.c5
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. */