If someone could review and check this in that'd be great.
Thanks,
Sam
- - - - - - - -
Two changes to the meta.preprocessor.macro.c parsing:
- Made macro arguments optional to correctly match basic macros, e.g:
#define SPINAL_TAP_VOLUME 11
- Permitted a trailing ellipsis to match macros with varargs, e.g:
#define ERR_IF(condition, function, format, args...) \
if (condition) \
{ \
fprintf(stderr, "%s:%d in %s(): " format, \
__FILE__, __LINE__, __FUNCTION__, ##args); \
perror(" with " #function "() failed"); \
}
- - - - - - - -
Index: Syntaxes/C.plist
===================================================================
--- Syntaxes/C.plist (revision 6438)
+++ Syntaxes/C.plist (working copy)
@@ -200,12 +200,17 @@
<dict>
<key>begin</key>
<string>(?x)
- ^\s*\#\s*(define)\s+ # define
+ ^\s*\#\s*(define)\s+ # define
((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro
name
- (\()(
- \s* \g<id> \s* #
first argument
- (, \s* \g<id> \s*)* #
additional arguments
- )(\))
+ (?: # and
optionally:
+ (\() # an
open parenthesis
+ (
+ \s* \g<id> \s* # first
argument
+ (, \s* \g<id> \s*)* #
additional arguments
+ (?:\.\.\.)? #
varargs ellipsis?
+ )
+ (\)) # a
close parenthesis
+ )?
</string>
<key>beginCaptures</key>
<dict>
- - - - - - - -
meta.preprocessor.macro.c.diff.gz
Description: GNU Zip compressed data
_______________________________________________ textmate-dev mailing list [email protected] http://lists.macromates.com/mailman/listinfo/textmate-dev
