Author: schweikh
Date: Tue Apr 10 15:29:28 2012
New Revision: 234101
URL: http://svn.freebsd.org/changeset/base/234101

Log:
  Parenthesize args in yyless() and unput() replacement text
  so they are safer when used with expressions.
  
  MFC after:    1 week

Modified:
  head/usr.bin/lex/flex.skl

Modified: head/usr.bin/lex/flex.skl
==============================================================================
--- head/usr.bin/lex/flex.skl   Tue Apr 10 14:29:56 2012        (r234100)
+++ head/usr.bin/lex/flex.skl   Tue Apr 10 15:29:28 2012        (r234101)
@@ -122,7 +122,7 @@ extern FILE *yyin, *yyout;
 #define EOB_ACT_LAST_MATCH 2
 
 /* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator).  This
+ * into a single C statement (which needs a semi-colon terminator).  This
  * avoids problems with code like:
  *
  *     if ( condition_holds )
@@ -143,12 +143,12 @@ extern FILE *yyin, *yyout;
                /* Undo effects of setting up yytext. */ \
                *yy_cp = yy_hold_char; \
                YY_RESTORE_YY_MORE_OFFSET \
-               yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+               yy_c_buf_p = yy_cp = yy_bp + (n) - YY_MORE_ADJ; \
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
                } \
        while ( 0 )
 
-#define unput(c) yyunput( c, yytext_ptr )
+#define unput(c) yyunput( (c), yytext_ptr )
 
 /* The following is because we cannot portably get our hands on size_t
  * (without autoconf's help, which isn't available because we want
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to