/* Definitions and global variables for intervals.
- Copyright (C) 1993-1994, 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 1993-1994, 2000-2015 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* Use these functions to set Lisp_Object
or pointer slots of struct interval. */
+INLINE void
+set_interval_object (INTERVAL i, Lisp_Object obj)
+{
+ eassert (BUFFERP (obj) || STRINGP (obj));
+ i->up_obj = 1;
+ i->up.obj = obj;
+}
+
INLINE void
set_interval_parent (INTERVAL i, INTERVAL parent)
{
/* Is this interval writable? Replace later with cache access. */
#define INTERVAL_WRITABLE_P(i) \
(i && (NILP (textget ((i)->plist, Qread_only)) \
+ || !NILP (textget ((i)->plist, Qinhibit_read_only)) \
|| ((CONSP (Vinhibit_read_only) \
? !NILP (Fmemq (textget ((i)->plist, Qread_only), \
Vinhibit_read_only)) \
extern Lisp_Object Qmodification_hooks;
extern Lisp_Object Qcategory;
extern Lisp_Object Qlocal_map;
-extern Lisp_Object Qkeymap;
/* Visual properties text (including strings) may have. */
-extern Lisp_Object Qfont;
extern Lisp_Object Qinvisible, Qintangible;
/* Sticky properties. */