diff options
| author | Richard M. Stallman | 1994-01-02 19:00:54 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-01-02 19:00:54 +0000 |
| commit | 7ac78c9ad4065b5abba9915320b2a969466d55a1 (patch) | |
| tree | dfe2100a65ba2a74f503d8225cdf8f940520c9b4 /src | |
| parent | 7c811eec1ee6dab02b033c72c9d1b4b1d6a7923b (diff) | |
| download | emacs-7ac78c9ad4065b5abba9915320b2a969466d55a1.tar.gz emacs-7ac78c9ad4065b5abba9915320b2a969466d55a1.zip | |
(NULL_RIGHT_CHILD, NULL_LEFT_CHILD):
Assume children must be intervals, never strings or buffers.
Diffstat (limited to 'src')
| -rw-r--r-- | src/intervals.h | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/intervals.h b/src/intervals.h index 444c2cdaad8..88142d6f671 100644 --- a/src/intervals.h +++ b/src/intervals.h | |||
| @@ -35,25 +35,25 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |||
| 35 | 35 | ||
| 36 | /* True if an interval pointer is null, or is a Lisp_Buffer or | 36 | /* True if an interval pointer is null, or is a Lisp_Buffer or |
| 37 | Lisp_String pointer (meaning it points to the owner of this | 37 | Lisp_String pointer (meaning it points to the owner of this |
| 38 | interval tree.) */ | 38 | interval tree). */ |
| 39 | #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL || \ | 39 | #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL \ |
| 40 | XTYPE ((Lisp_Object)(i)) == Lisp_Buffer || \ | 40 | || XTYPE ((Lisp_Object)(i)) == Lisp_Buffer \ |
| 41 | XTYPE ((Lisp_Object)(i)) == Lisp_String) | 41 | || XTYPE ((Lisp_Object)(i)) == Lisp_String) |
| 42 | 42 | ||
| 43 | /* True if this interval has no right child. */ | 43 | /* True if this interval has no right child. */ |
| 44 | #define NULL_RIGHT_CHILD(i) (NULL_INTERVAL_P((i)->right)) | 44 | #define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL) |
| 45 | 45 | ||
| 46 | /* True if this interval has no left child. */ | 46 | /* True if this interval has no left child. */ |
| 47 | #define NULL_LEFT_CHILD(i) (NULL_INTERVAL_P((i)->left)) | 47 | #define NULL_LEFT_CHILD(i) ((i)->left == NULL_INTERVAL) |
| 48 | 48 | ||
| 49 | /* True if this interval has no parent. */ | 49 | /* True if this interval has no parent. */ |
| 50 | #define NULL_PARENT(i) (NULL_INTERVAL_P((i)->parent)) | 50 | #define NULL_PARENT(i) (NULL_INTERVAL_P ((i)->parent)) |
| 51 | 51 | ||
| 52 | /* True if this interval is the left child of some other interval. */ | 52 | /* True if this interval is the left child of some other interval. */ |
| 53 | #define AM_LEFT_CHILD(i) (! NULL_INTERVAL_P ((i)->parent) \ | 53 | #define AM_LEFT_CHILD(i) (! NULL_INTERVAL_P ((i)->parent) \ |
| 54 | && (i)->parent->left == (i)) | 54 | && (i)->parent->left == (i)) |
| 55 | 55 | ||
| 56 | /* True if this interval is the right ehild of some other interval. */ | 56 | /* True if this interval is the right child of some other interval. */ |
| 57 | #define AM_RIGHT_CHILD(i) (! NULL_INTERVAL_P ((i)->parent) \ | 57 | #define AM_RIGHT_CHILD(i) (! NULL_INTERVAL_P ((i)->parent) \ |
| 58 | && (i)->parent->right == (i)) | 58 | && (i)->parent->right == (i)) |
| 59 | 59 | ||
| @@ -65,7 +65,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |||
| 65 | #define ROOT_INTERVAL_P(i) (NULL_PARENT (i)) | 65 | #define ROOT_INTERVAL_P(i) (NULL_PARENT (i)) |
| 66 | 66 | ||
| 67 | /* True if this interval is the only interval in the interval tree. */ | 67 | /* True if this interval is the only interval in the interval tree. */ |
| 68 | #define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P((i)) && LEAF_INTERVAL_P ((i))) | 68 | #define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P ((i)) && LEAF_INTERVAL_P ((i))) |
| 69 | 69 | ||
| 70 | /* True if this interval has both left and right children. */ | 70 | /* True if this interval has both left and right children. */ |
| 71 | #define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \ | 71 | #define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \ |
| @@ -98,15 +98,16 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |||
| 98 | #define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil)) | 98 | #define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil)) |
| 99 | 99 | ||
| 100 | /* Reset this interval to its vanilla, or no-property state. */ | 100 | /* Reset this interval to its vanilla, or no-property state. */ |
| 101 | #define RESET_INTERVAL(i) { \ | 101 | #define RESET_INTERVAL(i) \ |
| 102 | (i)->total_length = (i)->position = 0; \ | 102 | { \ |
| 103 | (i)->left = (i)->right = NULL_INTERVAL; \ | 103 | (i)->total_length = (i)->position = 0; \ |
| 104 | (i)->parent = NULL_INTERVAL; \ | 104 | (i)->left = (i)->right = NULL_INTERVAL; \ |
| 105 | (i)->write_protect = 0; \ | 105 | (i)->parent = NULL_INTERVAL; \ |
| 106 | (i)->visible = 0; \ | 106 | (i)->write_protect = 0; \ |
| 107 | (i)->front_sticky = (i)->rear_sticky = 0; \ | 107 | (i)->visible = 0; \ |
| 108 | (i)->plist = Qnil; \ | 108 | (i)->front_sticky = (i)->rear_sticky = 0; \ |
| 109 | } | 109 | (i)->plist = Qnil; \ |
| 110 | } | ||
| 110 | 111 | ||
| 111 | /* Copy the cached property values of interval FROM to interval TO. */ | 112 | /* Copy the cached property values of interval FROM to interval TO. */ |
| 112 | #define COPY_INTERVAL_CACHE(from,to) \ | 113 | #define COPY_INTERVAL_CACHE(from,to) \ |