comparison src/buffer.c @ 3481:56424e6245c2

(syms_of_buffer): Set up Lisp var inhibit-read-only. (Vinhibit_read_only): Declared. (Fbarf_if_buffer_read_only): Check Vinhibit_read_only.
author Richard M. Stallman <rms@gnu.org>
date Fri, 04 Jun 1993 18:08:07 +0000
parents aa78c7babb8e
children 78b4e6241f85
comparison
equal deleted inserted replaced
3480:9784ebc37245 3481:56424e6245c2
109 /* Functions to call before and after each text change. */ 109 /* Functions to call before and after each text change. */
110 Lisp_Object Vbefore_change_function; 110 Lisp_Object Vbefore_change_function;
111 Lisp_Object Vafter_change_function; 111 Lisp_Object Vafter_change_function;
112 112
113 Lisp_Object Vtransient_mark_mode; 113 Lisp_Object Vtransient_mark_mode;
114
115 /* t means ignore all read-only text properties.
116 A list means ignore such a property if its value is a member of the list.
117 Any non-nil value means ignore buffer-read-only. */
118 Lisp_Object Vinhibit_read_only;
114 119
115 /* List of functions to call before changing an unmodified buffer. */ 120 /* List of functions to call before changing an unmodified buffer. */
116 Lisp_Object Vfirst_change_hook; 121 Lisp_Object Vfirst_change_hook;
117 Lisp_Object Qfirst_change_hook; 122 Lisp_Object Qfirst_change_hook;
118 123
937 DEFUN ("barf-if-buffer-read-only", Fbarf_if_buffer_read_only, 942 DEFUN ("barf-if-buffer-read-only", Fbarf_if_buffer_read_only,
938 Sbarf_if_buffer_read_only, 0, 0, 0, 943 Sbarf_if_buffer_read_only, 0, 0, 0,
939 "Signal a `buffer-read-only' error if the current buffer is read-only.") 944 "Signal a `buffer-read-only' error if the current buffer is read-only.")
940 () 945 ()
941 { 946 {
942 while (!NILP (current_buffer->read_only)) 947 if (!NILP (current_buffer->read_only)
948 && NILP (Vinhibit_read_only))
943 Fsignal (Qbuffer_read_only, (Fcons (Fcurrent_buffer (), Qnil))); 949 Fsignal (Qbuffer_read_only, (Fcons (Fcurrent_buffer (), Qnil)));
944 return Qnil; 950 return Qnil;
945 } 951 }
946 952
947 DEFUN ("bury-buffer", Fbury_buffer, Sbury_buffer, 0, 1, "", 953 DEFUN ("bury-buffer", Fbury_buffer, Sbury_buffer, 0, 1, "",
2311 2317
2312 DEFVAR_LISP ("transient-mark-mode", &Vtransient_mark_mode, 2318 DEFVAR_LISP ("transient-mark-mode", &Vtransient_mark_mode,
2313 "*Non-nil means deactivate the mark when the buffer contents change."); 2319 "*Non-nil means deactivate the mark when the buffer contents change.");
2314 Vtransient_mark_mode = Qnil; 2320 Vtransient_mark_mode = Qnil;
2315 2321
2322 DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only
2323 "*Non-nil means disregard read-only status of buffers or characters.\n\
2324 If the value is t, disregard `buffer-read-only' and all `read-only'\n\
2325 text properties. If the value is a list, disregard `buffer-read-only'\n\
2326 and disregard a `read-only' text property if the property value\n\
2327 is a member of the list.");
2328 Vinhibit_read_only = Qnil;
2329
2316 defsubr (&Sbuffer_list); 2330 defsubr (&Sbuffer_list);
2317 defsubr (&Sget_buffer); 2331 defsubr (&Sget_buffer);
2318 defsubr (&Sget_file_buffer); 2332 defsubr (&Sget_file_buffer);
2319 defsubr (&Sget_buffer_create); 2333 defsubr (&Sget_buffer_create);
2320 defsubr (&Sgenerate_new_buffer_name); 2334 defsubr (&Sgenerate_new_buffer_name);