to capture that error in GDB by putting a breakpoint on it. */
static void
-text_read_only ()
+text_read_only (propval)
+ Lisp_Object propval;
{
- Fsignal (Qtext_read_only, Qnil);
+ Fsignal (Qtext_read_only, STRINGP (propval) ? Fcons (propval, Qnil) : Qnil);
}
return textget (Ftext_properties_at (position, object), prop);
}
-/* Return the value of POSITION's property PROP, in OBJECT.
+/* Return the value of char's property PROP, in OBJECT at POSITION.
OBJECT is optional and defaults to the current buffer.
If OVERLAY is non-0, then in the case that the returned property is from
an overlay, the overlay found is returned in *OVERLAY, otherwise nil is
int posn = XINT (position);
int noverlays;
Lisp_Object *overlay_vec, tem;
- int next_overlay;
int len;
struct buffer *obuf = current_buffer;
overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
noverlays = overlays_at (posn, 0, &overlay_vec, &len,
- &next_overlay, NULL, 0);
+ NULL, NULL, 0);
/* If there are more than 40,
make enough space for all, and try again. */
len = noverlays;
overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
noverlays = overlays_at (posn, 0, &overlay_vec, &len,
- &next_overlay, NULL, 0);
+ NULL, NULL, 0);
}
noverlays = sort_overlays (overlay_vec, noverlays, w);
if (TMEM (Qread_only, tem)
|| (NILP (Fplist_get (i->plist, Qread_only))
&& TMEM (Qcategory, tem)))
- text_read_only ();
+ text_read_only (after);
}
}
if (! TMEM (Qread_only, tem)
&& (! NILP (Fplist_get (prev->plist,Qread_only))
|| ! TMEM (Qcategory, tem)))
- text_read_only ();
+ text_read_only (before);
}
}
}
if (TMEM (Qread_only, tem)
|| (NILP (Fplist_get (i->plist, Qread_only))
&& TMEM (Qcategory, tem)))
- text_read_only ();
+ text_read_only (after);
tem = textget (prev->plist, Qrear_nonsticky);
if (! TMEM (Qread_only, tem)
&& (! NILP (Fplist_get (prev->plist, Qread_only))
|| ! TMEM (Qcategory, tem)))
- text_read_only ();
+ text_read_only (after);
}
}
}
do
{
if (! INTERVAL_WRITABLE_P (i))
- text_read_only ();
+ text_read_only (textget (i->plist, Qread_only));
if (!inhibit_modification_hooks)
{