/* Declarations having to do with GNU Emacs syntax tables.
-Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2013 Free Software
+Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2014 Free Software
Foundation, Inc.
This file is part of GNU Emacs.
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
INLINE_HEADER_BEGIN
-#ifndef SYNTAX_INLINE
-# define SYNTAX_INLINE INLINE
-#endif
extern void update_syntax_table (ptrdiff_t, EMACS_INT, bool, Lisp_Object);
extern struct gl_state_s gl_state;
/* Fetch the information from the entry for character C
- in syntax table TABLE, or from globally kept data (gl_state).
+ in the current buffer's syntax table,
+ or (if VIA_PROPERTY) from globally kept data (gl_state).
Does inheritance. */
-SYNTAX_INLINE Lisp_Object
-SYNTAX_ENTRY (int c)
+INLINE Lisp_Object
+syntax_property_entry (int c, bool via_property)
{
-#ifdef SYNTAX_ENTRY_VIA_PROPERTY
- return (gl_state.use_global
- ? gl_state.global_code
- : CHAR_TABLE_REF (gl_state.current_syntax_table, c));
-#else
+ if (via_property)
+ return (gl_state.use_global
+ ? gl_state.global_code
+ : CHAR_TABLE_REF (gl_state.current_syntax_table, c));
return CHAR_TABLE_REF (BVAR (current_buffer, syntax_table), c);
-#endif
+}
+INLINE Lisp_Object
+SYNTAX_ENTRY (int c)
+{
+ return syntax_property_entry (c, false);
}
/* Extract the information from the entry for character C
in the current syntax table. */
-SYNTAX_INLINE int
-SYNTAX_WITH_FLAGS (int c)
+INLINE int
+syntax_property_with_flags (int c, bool via_property)
{
- Lisp_Object ent = SYNTAX_ENTRY (c);
+ Lisp_Object ent = syntax_property_entry (c, via_property);
return CONSP (ent) ? XINT (XCAR (ent)) : Swhitespace;
}
+INLINE int
+SYNTAX_WITH_FLAGS (int c)
+{
+ return syntax_property_with_flags (c, false);
+}
-SYNTAX_INLINE enum syntaxcode
+INLINE enum syntaxcode
+syntax_property (int c, bool via_property)
+{
+ return syntax_property_with_flags (c, via_property) & 0xff;
+}
+INLINE enum syntaxcode
SYNTAX (int c)
{
- return SYNTAX_WITH_FLAGS (c) & 0xff;
+ return syntax_property (c, false);
}
for the object recorded in gl_state with SETUP_SYNTAX_TABLE_FOR_OBJECT.
The value is meant for use in code that does nothing when
- parse_sexp_lookup_properties is 0, so return 0 in that case, for speed. */
+ parse_sexp_lookup_properties is false, so return 0 in that case,
+ for speed. */
-SYNTAX_INLINE ptrdiff_t
+INLINE ptrdiff_t
SYNTAX_TABLE_BYTE_TO_CHAR (ptrdiff_t bytepos)
{
return (! parse_sexp_lookup_properties
/* Make syntax table state (gl_state) good for CHARPOS, assuming it is
currently good for a position before CHARPOS. */
-SYNTAX_INLINE void
+INLINE void
UPDATE_SYNTAX_TABLE_FORWARD (ptrdiff_t charpos)
{
if (parse_sexp_lookup_properties && charpos >= gl_state.e_property)
- update_syntax_table (charpos + gl_state.offset, 1, 0, gl_state.object);
+ update_syntax_table (charpos + gl_state.offset, 1, false, gl_state.object);
}
/* Make syntax table state (gl_state) good for CHARPOS, assuming it is
currently good for a position after CHARPOS. */
-SYNTAX_INLINE void
+INLINE void
UPDATE_SYNTAX_TABLE_BACKWARD (ptrdiff_t charpos)
{
if (parse_sexp_lookup_properties && charpos < gl_state.b_property)
- update_syntax_table (charpos + gl_state.offset, -1, 0, gl_state.object);
+ update_syntax_table (charpos + gl_state.offset, -1, false, gl_state.object);
}
/* Make syntax table good for CHARPOS. */
-SYNTAX_INLINE void
+INLINE void
UPDATE_SYNTAX_TABLE (ptrdiff_t charpos)
{
UPDATE_SYNTAX_TABLE_BACKWARD (charpos);
/* Set up the buffer-global syntax table. */
-SYNTAX_INLINE void
+INLINE void
SETUP_BUFFER_SYNTAX_TABLE (void)
{
- gl_state.use_global = 0;
+ gl_state.use_global = false;
gl_state.current_syntax_table = BVAR (current_buffer, syntax_table);
}