summaryrefslogtreecommitdiff
path: root/gen.c
diff options
context:
space:
mode:
authorVern Paxson <vern@ee.lbl.gov>1994-12-06 21:28:46 +0000
committerVern Paxson <vern@ee.lbl.gov>1994-12-06 21:28:46 +0000
commit5150784af44c3f7de8ae95a304c53e19f90b01a2 (patch)
treea9bd304f629f5b2f396317262591f8cd0c3dcbc7 /gen.c
parentda80fdccc7fc31b8a1789d44f33f613699a19aa5 (diff)
input() maintains BOL
Diffstat (limited to 'gen.c')
-rw-r--r--gen.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/gen.c b/gen.c
index eee30f7..6d2e7d2 100644
--- a/gen.c
+++ b/gen.c
@@ -1504,8 +1504,21 @@ void make_tables()
}
skelout();
- if ( lex_compat )
- { /* update yylineno inside of input() */
+ /* Update BOL and yylineno inside of input(). */
+ if ( bol_needed )
+ {
+ indent_puts( "yy_current_buffer->yy_at_bol = (c == '\\n');" );
+ if ( lex_compat )
+ {
+ indent_puts( "if ( yy_current_buffer->yy_at_bol )" );
+ indent_up();
+ indent_puts( "++yylineno;" );
+ indent_down();
+ }
+ }
+
+ else if ( lex_compat )
+ {
indent_puts( "if ( c == '\\n' )" );
indent_up();
indent_puts( "++yylineno;" );