]> granicus.if.org Git - php/commitdiff
MFZE1
authorIlia Alshanetsky <iliaa@php.net>
Mon, 14 Oct 2002 23:41:32 +0000 (23:41 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 14 Oct 2002 23:41:32 +0000 (23:41 +0000)
Zend/zend_globals.h
Zend/zend_ini_parser.y
Zend/zend_ini_scanner.l

index 2be5df282ae4d1a8a898e3f2f528e34783a9ffdc..9ca3aa24e506e38311a428d0fe9c167eacd18491 100644 (file)
@@ -252,6 +252,7 @@ struct _zend_scanner_globals {
        char *c_buf_p;
        int init;
        int start;
+       int lineno;
        char _yy_hold_char;
        int yy_n_chars;
        int _yy_did_buffer_switch_on_eof;
index 23f4054e0960f2a3d4617ac8596cdc2a4b01476d..f591debab6408bba5db5dc1d27928ed6ffaedf4c 100644 (file)
@@ -57,7 +57,6 @@ zval yylval;
 #ifndef ZTS
 extern int ini_lex(zval *ini_lval TSRMLS_DC);
 extern FILE *ini_in;
-extern int ini_lineno;
 extern void init_cfg_scanner(void);
 #endif
 
index fe14e92b6953ee47ab34362891a2e680591128fc..65aa9e578102a77665f7c24a6a51e33b93c1d5e1 100644 (file)
@@ -49,15 +49,15 @@ ZEND_API zend_scanner_globals ini_scanner_globals;
 
 static char *ini_filename;
 
-void init_ini_scanner()
+void init_ini_scanner(TSRMLS_D)
 {
-       ini_lineno=1;
+       SCNG(lineno)=1;
 }
 
 
 int zend_ini_scanner_get_lineno(TSRMLS_D)
 {
-       return ini_lineno;
+       return SCNG(lineno);
 }
 
 
@@ -83,7 +83,7 @@ int zend_ini_open_file_for_scanning(zend_file_handle *fh TSRMLS_DC)
                        return FAILURE;
        }
 
-       init_ini_scanner();
+       init_ini_scanner(TSRMLS_C);
        yyin = fp;
        yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
        ini_filename = fh->filename;
@@ -105,7 +105,6 @@ void zend_ini_close_file(zend_file_handle *fh TSRMLS_DC)
 NEWLINE ("\r"|"\n"|"\r\n")
 
 %option noyywrap
-%option yylineno
 
 %%
 
@@ -134,6 +133,8 @@ NEWLINE ("\r"|"\n"|"\r\n")
                yytext[yyleng]=0;
        }
 
+       SCNG(lineno)++;
+
        /* eat leading [ */
        yytext++;
        yyleng--;
@@ -200,15 +201,20 @@ NEWLINE ("\r"|"\n"|"\r\n")
 
 
 <INITIAL>[=\n] {
+       if (yytext[0] == '\n') {
+               SCNG(lineno)++;
+       }       
        return yytext[0];
 }
 
 <INITIAL>{NEWLINE} {
+       SCNG(lineno)++;
        return '\n';
 }
 
 <INITIAL>[;][^\r\n]*{NEWLINE}? {
        /* comment */
+       SCNG(lineno)++;
        return '\n';
 }