summaryrefslogtreecommitdiff
path: root/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'node.h')
-rw-r--r--node.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/node.h b/node.h
index df822462e5..6c8acb59b0 100644
--- a/node.h
+++ b/node.h
@@ -156,21 +156,22 @@ typedef struct RNode {
#define RNODE(obj) (R_CAST(RNode)(obj))
-#define NODE_TYPESHIFT 7
-#define NODE_TYPEMASK (0xff<<NODE_TYPESHIFT)
+/* 0..4:T_TYPES, 5:FL_MARK, 6:reserved, 7:NODE_NEWLINE */
+#define NODE_NEWLINE (1<<7)
-#define nd_type(n) ((int)(((RNODE(n))->flags>>NODE_TYPESHIFT)&0x7f))
+#define NODE_TYPESHIFT 8
+#define NODE_TYPEMASK (0x7f<<NODE_TYPESHIFT)
+
+#define nd_type(n) ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n,t) \
RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|(((t)<<NODE_TYPESHIFT)&NODE_TYPEMASK))
-#define NODE_LSHIFT (NODE_TYPESHIFT+8)
+#define NODE_LSHIFT (NODE_TYPESHIFT+7)
#define NODE_LMASK (((long)1<<(sizeof(NODE*)*CHAR_BIT-NODE_LSHIFT))-1)
#define nd_line(n) ((unsigned int)(((RNODE(n))->flags>>NODE_LSHIFT)&NODE_LMASK))
#define nd_set_line(n,l) \
RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
-#define NODE_NEWLINE FL_USER7
-
#define nd_head u1.node
#define nd_alen u2.argc
#define nd_next u3.node