diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2013-09-21 23:22:05 -0700 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2013-09-21 23:22:05 -0700 |
| commit | c6cfd9101e70010bcd4ba6831b0d42ebc84728fe (patch) | |
| tree | f0ef00d745ba5260d9b369ec1946bdd43e47de53 /src/syntax.c | |
| parent | 3a4be55b4d956799201169bb4ba49c0e948eec32 (diff) | |
| download | emacs-c6cfd9101e70010bcd4ba6831b0d42ebc84728fe.tar.gz | |
Fix syntax.h bug introduced by recent INLINE change.
syntax.h defined an extern inline function SYNTAX_ENTRY that was
conditionally compiled one way in some modules, and a different
way in others. This doesn't work with extern inline functions,
which must have the same definition in all modules, because the
defining code might be shared across modules, depending on the
implementation. Symptoms reported by Martin Rudalics in:
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
* regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
(SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
overriding the corresponding functions in syntax.h.
* syntax.h (syntax_property_entry, syntax_property_with_flags)
(syntax_property): New inline functions.
(SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
Rewrite in terms of these new functions.
Diffstat (limited to 'src/syntax.c')
| -rw-r--r-- | src/syntax.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/syntax.c b/src/syntax.c index 3785bf45515..e18db029309 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -29,13 +29,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include "keymap.h" #include "regex.h" -/* Make syntax table lookup grant data in gl_state. */ -#define SYNTAX_ENTRY_VIA_PROPERTY - #include "syntax.h" #include "intervals.h" #include "category.h" +/* Make syntax table lookup grant data in gl_state. */ +#define SYNTAX(c) syntax_property (c, 1) +#define SYNTAX_ENTRY(c) syntax_property_entry (c, 1) +#define SYNTAX_WITH_FLAGS(c) syntax_property_with_flags (c, 1) + /* Eight single-bit flags have the following meanings: 1. This character is the first of a two-character comment-start sequence. 2. This character is the second of a two-character comment-start sequence. |
